WebDriverAPI(8)
判断页面元素是否存在
测试网址
http://www.baidu.com
Java语言版本API实例
@Test
public void testIsElementPresent(){
driver.manage().window().maximize();
driver.get(url);
if(IsElementPresent(By.id("kw"))){
WebElement searchInputBox = driver.findElement(By.id("kw"));
if(searchInputBox.isEnabled() == true){
searchInputBox.sendKeys("百度首页搜索框成功找到");
}
}
else{
Assert.fail("未找到页面元素");
}
}
private boolean IsElementPresent(By by) {
try {
//判断传入的参数是否找到页面元素,找到则返回true
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
使用title属性识别和操作弹出的浏览器窗口
测试页面代码
<html>
<head>
<title>你喜欢的水果</title>
</head>
<body>
<p id='p1'>你爱吃的水果么?</P>
<br><br>
<a href="http://www.baidu.com" target="_blank">百度搜索</a>
</body>
</html>
http://www.baidu.com
Java语言版本API实例
@Test
public void identifyPopUpWindowByTitle() {
driver.manage().window().maximize();
driver.get(url);
//获取当前窗口句柄
String parentWindowHandle = driver.getWindowHandle();
WebElement baiduLink = driver.findElement(By.xpath("//a"));
baiduLink.click();
//定义一个set容器存储所有的窗口句柄
Set<String> allWindowsHandles = driver.getWindowHandles();
//如果存储容器对象不为空则进行遍历
if(!allWindowsHandles.isEmpty()){
for(String windowHandle:allWindowsHandles){
try {
//通过窗口的浏览器名称判断是否为百度
if(driver.switchTo().window(windowHandle).getTitle().equals("百度一下,你就知道"))
driver.findElement(By.id("kw")).sendKeys("百度的浏览器窗口被找到");
} catch (NoSuchWindowException e) {
e.printStackTrace();
}
}
}
//返回最早打开的窗口
driver.switchTo().window(parentWindowHandle);
//通过标题断言判断是否为之前窗口
Assert.assertEquals(driver.getTitle(), "你喜欢的水果");
}
使用页面的文字内容识别和处理新弹出的浏览器窗口
测试页面代码
<html>
<head>
<title>你喜欢的水果</title>
</head>
<body>
<p id='p1'>你爱吃的水果么?</P>
<br><br>
<a href="http://www.baidu.com" target="_blank">百度搜索</a>
</body>
</html>
Java语言版本API实例
@Test
public void identifyPopUpWindowByPageSource() {
String parentWindowHandle = driver.getWindowHandle();
driver.get(url);
WebElement baiduLink = driver.findElement(By.xpath("//a"));
baiduLink.click();
Set<String> allWindowHandles = driver.getWindowHandles();
if(!allWindowHandles.isEmpty()){
for(String windowHandle:allWindowHandles){
try {
//判断页面源码中是否包含百度一下4字
if(driver.switchTo().window(windowHandle).getPageSource().contains("百度一下"))
driver.findElement(By.id("kw")).sendKeys("找到百度浏览器窗口");
} catch (NoSuchWindowException e) {
e.printStackTrace();
}
}
}
//返回之前的浏览器窗口
driver.switchTo().window(parentWindowHandle);
Assert.assertEquals(driver.getTitle(), "你喜欢的水果");
}
WebDriverAPI(8)的更多相关文章
- WebDriverAPI(7)
查看页面元素的属性 测试网址 http://www.baidu.com Java语言版本API实例 @Test public void getWebElementAttribute() { dri ...
- WebDriverAPI(10)
操作Frame页面元素 测试网址代码 frameset.html: <html> <head> <title>frameset页面</title> &l ...
- WebDriverAPI(9)
操作JavaScript的Alert窗口 测试网址代码 <html> <head> <title>你喜欢的水果</title> </head> ...
- WebDriverAPI(4)
单击某个元素 采用元素id.click()方法即可 双击某个元素id.doubleClick 操作单选下拉列表 测试网页HTML代码 <html> <body> <sel ...
- WebDriverAPI(2)
操作浏览器窗口 被测网址http:http://www.baidu.com Java语言版本的API实例代码 String url = "http://www.baidu.com" ...
- WebDriverAPI(6)
在指定元素上方进行鼠标悬浮 测试网址 http://www.baidu.com Java语言版本实例 @Test public void roverOnElement() { driver.manag ...
- WebDriverAPI(5)
将当前浏览器截屏 测试网址 http://www.baidu.com Java语言版本实例 @Test public void captureScreenInCurrentWindows() { dr ...
- WebDriverAPI(3)
获取页面的Title属性 被测网址http:http://www.baidu.com Java语言版本的API实例代码 String url = "http://www.baidu.com& ...
- WebDriverAPI(1)
访问某网页地址 被测网址http:http://www.baidu.com Java语言版本的API实例代码 方法一: @Test public void visitURL(){ String bas ...
随机推荐
- 2018.10.05 NOIP模拟 阶乘(简单数论)
传送门 签到题. 直接把所有数先质因数分解. 同时统计每一个在阶乘中会出现的质数出现的最少次数. 然后对于每一个这样的质数,我们求出满足其出现质数的m的最小值,然后求出所有m的最大值. 求m的时候可以 ...
- 2018.08.28 洛谷P4556 [Vani有约会]雨天的尾巴(树上差分+线段树合并)
传送门 要求维护每个点上出现次数最多的颜色. 对于每次修改,我们用树上差分的思想,然后线段树合并统计答案就行了. 注意颜色很大需要离散化. 代码: #include<bits/stdc++.h& ...
- 2018.07.07 BZOJ2212: Poi2011Tree Rotations(线段树合并)
2212: [Poi2011]Tree Rotations Time Limit: 20 Sec Memory Limit: 259 MB Description Byteasar the garde ...
- 着重基础之—MySql Blob类型和Text类型
着重基础之—MySql Blob类型和Text类型 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格 ...
- ansible api 调用出现ssh交互式输入
发现在删掉 ~/.ssh/know_hosts 之后运行 ansible api 会出现以下提示 The authenticity of host '10.1.*.* (10.1.*.*)' can' ...
- MOD13A1: MODIS/Terra Vegetation Indices 16-Day L3 Global 500 m SIN Grid V006
https://lpdaac.usgs.gov/node/838 Description The MOD13A1 Version 6 product provides a Vegetation Ind ...
- Codeforces777E. Hanoi Factory 2017-05-04 18:10 42人阅读 评论(0) 收藏
E. Hanoi Factory time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- 从0学习JQ
转 张子秋的博客 为以后用到的时候好查询! 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 ...
- NLTK之WordNet 接口
WordNet是面向语义的英语词典,类似于传统字典.它是NLTK语料库的一部分,可以被这样调用: 更简洁的写法: 1.单词 查看一个单词的同义词集用synsets(); 它有一个参数pos,可以指定查 ...
- jQuery之noConflict() 方法
jQuery 核心 - noConflict() 方法,运行这个函数将变量 $ 的控制权让渡给第一个实现它的那个库.这有助于确保jQuery不会与其他库的$对象发生冲突. noConflict() 方 ...