惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Y
Y Combinator Blog
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
S
SegmentFault 最新的问题
J
Java Code Geeks
V
Visual Studio Blog
H
Help Net Security
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
B
Blog RSS Feed
The Cloudflare Blog
MyScale Blog
MyScale Blog
月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
美团技术团队

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
webDriver(2)API
祈雨的笔记 · 2018-02-23 · via 祈雨的笔记

1、打开浏览器访问指定链接

1
2
3
4
5
6
7
8
@Test
public void toUrl(){
System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
driver=new FirefoxDriver();
//两种访问链接方式
driver.get("http://192.168.100.2:8080/TrainingSystem/index");
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem/index");
}

2、页面元素定位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void findElement(){
driver.navigate().to("");
//通过id定位元素
WebElement element = driver.findElement(By.id(""));
//通过name定位元素
WebElement element2 = driver.findElement(By.name(""));
//通过class定位元素
WebElement element3 = driver.findElement(By.className(""));
//页面可能有多个class元素,可获取所有符合条件的元素,再进一步定位
WebElement element4 = driver.findElements(By.className("")).get(0);
//通过xpath定位元素
WebElement element5 = driver.findElement(By.xpath(""));
//通过超链接定位元素
WebElement element6 = driver.findElement(By.linkText(""));
}

3、文本框文本输入

1
2
3
4
5
WebElement input = driver.findElement(By.name("username"));
//清空文本框的值
input.clear();
//在文本输入框输入值
input.sendKeys("12345");

4、单击、双击

1
2
3
4
5
6
7
8

//通过name获取链接
WebElement link = driver.findElement(By.id("submit"));
//单击
link.click();
//双击
Actions builder = new Actions(driver);
builder.doubleClick(link).build().perform();

5、浏览器最大化

1
driver.manage().window().maximize();

6、刷新、后退、前进

1
2
3
4
5
6
7
8
9
10
driver.navigate().to("http://192.168.100.6:8099/tasklist_unfinished/");
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem/index");
//刷新
driver.navigate().refresh();
Thread.sleep(2000);
//回退
driver.navigate().back();
Thread.sleep(2000);
//前进
driver.navigate().forward();

7、操作下拉列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
driver.navigate().to("");
//获取下拉列表
Select selectList = new Select(driver.findElement(By.id("roleId")));
Thread.sleep(2000);
//通过序号选择
selectList.selectByIndex(1);
Thread.sleep(2000);
//通过文本选择
selectList.selectByVisibleText("管理员登录");
Thread.sleep(2000);
//通过值选择
selectList.selectByValue("3");
//获取选中列表选项的值
String test = selectList.getFirstSelectedOption().getText();
System.out.println(test);

8、操作单选框

1
2
3
4
5
6
WebElement radio = driver.findElement(By.id(""));
//单选框是否选中
if(!radio.isSelected()){
//选中单选框
radio.click();
}

9、操作复选框

1
2
3
4
5
6
7
8
9
10
WebElement box = driver.findElement(By.xpath(""));
Thread.sleep(2000);
//复选选框是否选中
if(!box.isSelected()){
//选中复选框
box.click();
Thread.sleep(2000);
//再次点击则取消复选框选中状态
box.click();
}

10、截屏

1
2
3
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem");
File screen = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screen, new File("D://tmp.png"));

11、执行js脚本

1
2
3
4
5
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem");
//执行javascript
JavascriptExecutor js=(JavascriptExecutor) driver;
String title = (String) js.executeScript("var link=document.getElementById('lnkDownList');return link.href;");
System.out.println(title);

12、拖拽页面元素

1
2
3
4
WebElement link = driver.findElement(By.name(""));
Actions builder = new Actions(driver);
//向右向下拖拽10个像素
builder.dragAndDropBy(link, 10, 10).build().perform();

13、模拟键盘

1
2
3
4
5
6
7
8
9
10
11
12
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem/");
WebElement link = driver.findElement(By.id("username"));
Actions builder = new Actions(driver);
//按下ctrl键
builder.keyDown(Keys.CONTROL);
//释放ctrl键
builder.keyUp(Keys.CONTROL);
//按下SHIFT键
builder.keyDown(Keys.SHIFT);
builder.keyUp(Keys.SHIFT);
//输入大写ABCDEF
builder.keyDown(link, Keys.SHIFT).sendKeys("abcdef").perform();

14、模拟鼠标右击

1
2
3
4
5
driver.navigate().to("http://192.168.100.2:8080/TrainingSystem/");
WebElement link = driver.findElement(By.id("username"));
Actions builder = new Actions(driver);
//鼠标右击
builder.contextClick(link).build().perform();

15、鼠标悬停

1
2
3
4
driver.navigate().to("");
WebElement link = driver.findElement(By.id(""));
Actions builder = new Actions(driver);
builder.moveToElement(link).build().perform();

16、鼠标单击左键和释放

1
2
3
4
5
6
driver.navigate().to("");
WebElement link = driver.findElement(By.id(""));
Actions builder = new Actions(driver);
builder.clickAndHold(link).build().perform();
builder.moveByOffset(10, 10);
builder.release(link);