489
社区成员




https://www.google.cn/intl/zh-CN/chrome/
设置+关于chrome
下载浏览器对应版本的
ChromeDriver - WebDriver for Chrome - Downloads
120以上版本:Chrome for Testing availability
点击我的电脑/此电脑>>右键点击属性>>点击高级系统设置>>环境变量>>系统变量。
点击系统变量中的path,点击新增,并将驱动的安装目复制填入后,点击确定。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) {
WebDriver webDriver = new ChromeDriver();
}
}
class=""
webDriver.findElement(By.cssSelector(".前端样式类名"));
webDriver.findElement(By.cssSelector("#前端样式类名"));
标签名作为定位
webDriver.findElement(By.xpath("//*[@id=\"s-top-left\"]/a[1]")).click();
相对路径+索引
相对路径+属性值
相对路径+通配符
相对路径+文本匹配
CSS选择器定位元素效率高
点击对象
webDriver.findElement(By.cssSelector("#kw")).click();
在对象上模拟按键输入
webDriver.findElement(By.cssSelector("#kw")).sendKeys("你好");
清除对象输入的文本内容
提交
点击元素需是在form标签内
获取元素文本信息
强制等待
最长等待某个时间点,获取到页面元素,就执行下面代码,如果这个时间还没有找到元素就报错。
WebDriverWait wait= new WebDriverWait(webDriver,3000);
获取title
String title= webDriver.getTitle();
String url= webDriver.getCurrentUrl();
webDriver.manage().window().maximize();
webDriver.manage().window().setSize(new Dimension(长度,宽度));
后退
webDriver.navigate().back();
前进
webDriver.navigate().forward();
webDriver.navigate().to("网址");
等同于 webDriver.get();
((JavascriptExecutor)webDriver).executeScript("document.documentElement.scrollTop=10000");
5.关闭浏览器
webDriver.quit();
webDriver.close();
区别:
1.quit关闭整个浏览器,close关闭当前页面
2.quit清空缓存,close不会清空缓存
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL);
webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"A");
//创建 Actions
Actions action=new Actions(webDriver);
//找到按钮
WebElement target= webDriver.findElement(By.cssSelector(".a3"));
//鼠标移动到这个按钮
action.moveToElement(target).contextClick().perform();
List <WebElement> webElements=webDriver.findElements(By.cssSelector("input"));
for(int i=0;i<webElements.size();i++){
//getAttribute获取页面上的元素属性
if(webElements.get(i).getAttribute("type").equals("radio")){
webElements.get(i).click();
}
}
webDriver.get("");
webDriver.findElement(By.xpath("/html/body/input")).sendKeys("上传文件名");
webDriver.switchTo().frame("id名");
WebElement webElement= webDriver.findElement(By.cssSelector("#ShippingMethod"));
Select select=new Select(webElement);
select.selectByIndex(1);
select.selectByValue("8.34");
text 返回alert/confirm/prompt 中的文字信息
accept 点击确认按钮
dismiss 点击取消按钮,如果有的话
send_keys 输入值,如果alert 没有对话框就不能用了,不然会报错
//输入弹窗
webDriver.switchTo().alert().sendKeys("name");
//点击确定
webDriver.switchTo().alert().accept();
//点击取消
webDriver.switchTo().alert().dismiss();
//当前窗口句柄
String cur_handle=webDriver.getWindowHandle();
//当前浏览器当前所有句柄
Set<String> all_handles=webDriver.getWindowHandles();
String target="";
for(String temp :all_handles){
target=temp;
}
//切换窗口句柄
webDriver.switchTo().window(target);
下载依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
File file=((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
//file保存磁盘
FileUtils.copyFile(file,new File("保存路径"));