一、环境搭建
1、JDK安装(配置环境变量)
2、selenium下载
3、测试Demo
public static void main(String[] args) throws InterruptedException {
//todo System.setProperty(String key,String value):设置指定键值对的系统属性
System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.baidu.com");
driver.findElement(By.id("kw")).sendKeys("巡阴人");
driver.findElement(By.id("su")).click();
Thread.sleep(2000);
driver.close();
}
复制代码
4、八大定位元素
public static void main(String[] args) throws InterruptedException {
//todo System.setProperty(String key,String value):设置指定键值对的系统属性
System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.baidu.com");
//todo 1.根据id属性选择元素
driver.findElement(By.id("kw")).sendKeys("逆流成河");
//todo 2.根据name属性选择元素
driver.findElement(By.name("wd")).sendKeys("逆流成河");
//todo 3.根据class属性选择元素
driver.findElement(By.className("s_ipt")).sendKeys("逆流成河");
//todo 4.根据xpath选择元素
driver.findElement(By.xpath("//*[@id='kw']")).sendKeys("逆流成河");
//todo 5.根据css选择器选择元素(常用)
driver.findElement(By.cssSelector("#kw")).sendKeys("逆流成河");
//todo 6.根据链接文本选择元素
driver.findElement(By.linkText("新闻")).click();
//todo 7.根据链接部分文本选择元素
driver.findElement(By.partialLinkText("新")).click();
//todo 8.根据标签名选择元素
driver.findElement(By.tagName("input")).sendKeys("逆流成河");
Thread.sleep(2000);
driver.close();
}
复制代码
5、常用方法
public static void main(String[] args) throws Exception {
//todo 5.System.setProperty(String key,String value):设置指定键值对的系统属性
System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.baidu.com");
//todo 1.sendKeys:输入值
driver.findElement(By.id("kw")).sendKeys("逆流成河");
//todo 2.getAttribute:获取属性值
System.out.println(driver.findElement(By.id("kw")).getAttribute("name"));
//todo 3.清除操作
driver.findElement(By.id("kw")).clear();
//todo 4.元素是否显示(boolean)
System.out.println(driver.findElement(By.id("kw")).isDisplayed());
//todo 6.getText:获取值
System.out.println(driver.findElement(By.linkText("新闻")).getText());
//todo 7.最大化窗口
driver.manage().window().maximize();
//todo 8.元素是否被选择(多用于单选框、复选框)(boolean)
System.out.println(driver.findElement(By.id("kw")).isSelected());
//todo 9.submit:提交操作
driver.findElement(By.id("kw")).sendKeys("逆流成河");
driver.findElement(By.id("su")).submit();
driver.findElement(By.id("su")).click();
//todo 10.getWindowHandle:获取窗口句柄
System.out.println(driver.getWindowHandle());
//todo 11.getCurrentUrl:获取url
System.out.println(driver.getCurrentUrl());
Thread.sleep(2000);
driver.close();
}
复制代码
6、悬停和下拉框以及复合定位
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.baidu.com");
//todo clickAndHold:悬停
Actions action=new Actions(driver);
action.clickAndHold(driver.findElement(By.cssSelector("#u1 > a.pf"))).perform();
Thread.sleep(2000);
driver.findElement(By.cssSelector("#wrapper > div.bdpfmenu > a.setpref")).click();
Thread.sleep(2000);
//todo 下拉框
Select select=new Select(driver.findElement(By.cssSelector("#nr")));
//todo 1.selectByIndex:根据索引选择
select.selectByIndex(1);
//todo 2.selectByValue:根据值选择
select.selectByValue("50");
//todo 3.selectByVisibleText:根据下拉文本值选择
select.selectByVisibleText("每页显示10条");
//todo 4.getOptions().get(i):获取列表项通过点击选择
select.getOptions().get(2).click();
for(int i=0;i<select.getOptions().size();i++){
select.getOptions().get(i).click();
Thread.sleep(2000);
}
//todo 复合定位(定位一组元素)
for(int i=0;i<driver.findElements(By.name("SL")).size();i++){
driver.findElements(By.name("SL")).get(i).click();
Thread.sleep(1000);
}
Thread.sleep(2000);
driver.close();
}
复制代码
7、frame操作和文件上传
public static void main(String[] args)throws Exception {
System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();System.setProperty("webdriver.chrome.driver","D:/自动化测试/chromedriver_win32/chromedriver.exe");
driver.get("https://mail.qq.com/cgi-bin/loginpage");
driver.manage().window().maximize();
//todo frame
//todo driver.switchTo().frame(WebElement):切换到frame页
driver.switchTo().frame(driver.findElement(By.id("login_frame")));
driver.findElement(By.id("u")).sendKeys("2788386852@qq.com");
driver.findElement(By.id("p")).sendKeys("XIAOqin=900216");
driver.findElement(By.id("login_button")).click();
Thread.sleep(2000);
driver.findElement(By.id("composebtn")).click();
driver.switchTo().frame(driver.findElement(By.id("mainFrame")));
Thread.sleep(5000);
driver.findElement(By.cssSelector("#toAreaCtrl > div.addr_text > input")).sendKeys("734867098@qq.com");
driver.findElement(By.id("subject")).sendKeys("xunyinren");
//todo 上传附件
//todo sendKeys(文件路径)
driver.findElement(By.name("UploadFile")).sendKeys("C:\\Users\\Administrator\\Desktop\\123987.sql");
//todo driver.switchTo().defaultContent():返回默认页面
driver.switchTo().defaultContent();
Thread.sleep(2000);
driver.findElement(By.id("readmailbtn_link")).click();
}
复制代码
二、测试框架TestNg
转载于:https://juejin.im/post/5c6ba34351882562d17d9626