配置:https://www.imooc.com/video/13952
1 建java项目 建包 建类
2 下载import selenium包 并JAVA导入该包。
导入包:右击创建的项目名--选最后一个properties--Java Build Path--右上单击Libraries--右边点击Add External JARs--选择下载解压好的selenium包全部里所有.jar格式全导入-单击OK。
http://npm.taobao.org/mirrors/selenium/链接:https://pan.baidu.com/s/1gfzrYs7 密码: rphx
3 需要在Chrome浏览器安装插件ChromeDriver,放置在谷歌浏览器安装目录并加入环境变量path。
http://npm.taobao.org/mirrors/chromedriver/链接:https://pan.baidu.com/s/1o8IG7c2 密码: jb3g
4 Chrome 浏览器
package com.TEST;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
public class openChrome { public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.findElement(By.id("kw")).sendKeys("知乎");
driver.findElement(By.id("su")).click();
driver.findElement(By.name("wd")).sendKeys(" name");
driver.findElement(By.className("s_ipt")).sendKeys(" class_name");
//driver.findElement(By.tagName(""));
driver.findElement(By.linkText("图片")).click();
driver.findElement(By.xpath("//span[@class='col2']/a")).click();
}
}
5 FireFox 浏览器
package com.TEST;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class openFirefox { public static void main(String[] args) {
System.setProperty("webdriver.firefox.bin", "F:\\APP TEST\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();
String testUrl = "http://www.baidu.com";
driver.get(testUrl);
}}
6 详细Selenium API操作
https://www.imooc.com/video/13960 元素的定位
By.id By.name By.className By.tagName 链接By.linkText
.click()点击 .sendKeys("输入值") .clear()清除 .getText() 获得文本
最好用 By.xpath()
By.xpath('@href')
By.xpath('text()')
By.xpath('//a[contains(text(),"下一页")]/@href')
By.xpath("//span[@class='col2']/a")
By.xpath('//a[contains(text(),'安徽')]/../a[position()>2]')
By.xpath('//ul[@class="l-contact"]/li/span[contains(text(),"公司官网")]/following-sibling::span/a/@href')
driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("hello");
driver.findElement(By.xpath("//span[@class='col2']/a")).click();
driver.findElement(By.xpath("//div[@class='sub-nav']/div[@class='sub-navbar']/a[contains(text(),'供求商机')]")).click();
driver.findElement(By.id("kw")).sendKeys("知乎"); ;
driver.findElement(By.name("wd")).sendKeys(" name");
driver.findElement(By.className("s_ipt")).sendKeys(" class_name");
driver.findElement(By.linkText("图片")).click();
driver.findElement(By.cssSelector("#kw")).sendKeys("keys");
table定位
// 定位到该表格
WebElement Table = driver.findElement(By.tagName("table"));
// 定位到表格某一列所有元素定位一组元素用 findElements
// 然后变成list 需要再转化为 WebElement
List rows_0 = Table.findElements(By.tagName("tr"));
// 再循环取出每一行
for(WebElement r:rows_0){
// 取出该行所有列数组
List tds = r.findElements(By.tagName("td"));
for(WebElement t:tds){
System.out.print(t.getText()+"\n");
}
}
操作手册
1 打开网址方式
Driver.get()
Driver.navigate.to()
2 操作浏览器API
Driver.navigate().refresh()
Driver.navigate().forward()
Driver.navigate().back()
Driver.getTitle()
Driver.getCurrenUrl() 获取当前URL
Driver.manage().windows().maximize() 窗口最大化
Driver.quite() 没有完全关闭
Driver.close() 完全关闭
3 滚动条操作 通过JS操作
js.executeScript(document.getElementById("ueditor_0").contentWindow.document.body.innerHTML=\"这个是通过JS写入的在fram里面");
4 操作浏览器cookie
4.1获取cookie
public void getCookie_all(){
Set allCookie = driver.manage().getCookies();
for(Cookie loadedCookie:allCookie){
System.out.print("作用域:"+loadedCookie.getDomain());
名称:loadedCookie.getName()
值:loadedCookie.getValue()
范围:loadedCookie.getArea()
过期时间:loadedCookie.getExpriy()
}
}
4.2删除Cookie
public void decookie(){
message("删除Cookie");
driver.manage().deleteAllCookies();
}
5 输入框操作API
sendKeys()
clear()
getText()
click()
6 选择框处理
6.1单选框
message("定位单选框api进行中");
WebElement radio = driver.findElement(By.name("Sex")); //定位到该单选框
message("检查元素是否选中api进行中");
Checkbox(radio,"单选框");
6.2复选框
message("定位复选框api进行中");
WebElement box = driver.findElement(By.name("Bike")); //定位到该单选框
message("检查元素是否选中api进行中");
6.3下拉框
Checkbox(box,"复选框")
message("下拉框api进行中");
Select list = new Select(driver.findElement(By.name("listname")));
message("下拉框通过index进行选择api进行中");
message("下拉框通过属性进行选择api进行中");
list.selectByValue("下拉框三");
7 特殊窗口处理
7.1 Iframe窗口处理 弹窗处理
7.2页面元素处理
等待加载 根据属性获取元素值 获取对象的css属性
获取对象状态{
页面是否显示isdisplay()
元素是否存在find_element
元素是否选中isSelected()
是否处于灰化状态isEnabled()
窗口处理API
js定位 js单击元素
特殊API
报错时截屏保存
模拟鼠标右键操作(用处不大)
鼠标悬浮(用处不大)
上传文件
日期控制处理
【web自动化--JAVA Selenium】浏览器滚动条操作
推荐阅读
- 面试|我经历的IT公司面试及离职感受(转)
- Asp.net|System.Globalization.DateTimeFormatInfo.InvariantInfo
- 测试|16年资深测试大牛教你三部成为测试架构师
- Android|Android VideoView如何播放RTSP的流
- web技术|项目管理之如何控制项目进度和质量
- android|测量webView页面性能技术方案
- 测试|selenium-grid AND docker化方案
- Java|Jacoco覆盖率工具使用调研