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 ...
随机推荐
- html转jsp部分css不可用
解决方法 <%String path = request.getContextPath();String basePath = request.getScheme()+"://&quo ...
- [翻译]Spring MVC RESTFul Web Service CRUD 例子
Spring MVC RESTFul Web Service CRUD 例子 本文主要翻译自:http://memorynotfound.com/spring-mvc-restful-web-serv ...
- Swift中的闭包(Closure)[转]
闭包在Swift中非常有用.通俗的解释就是一个Int类型里存储着一个整数,一个String类型包含着一串字符,同样,闭包是一个包含着函数的类型.有了闭包,你就可以处理很多在一些古老的语言中不能处理的事 ...
- mysql 可重复执行添加列
DROP PROCEDURE IF EXISTS `add_column_if`; CREATE PROCEDURE `add_column_if`(IN v_table varchar(), IN ...
- date(): It is not safe to rely on the system’s timezone settings.
在执行php脚本时出现的错误: date(): It is not safe to rely on the system’s timezone settings.You are *required* ...
- 破解Oracle ERP密码
前提:你有apps的数据库账户,想知道某个用户的密码,因为fnd_user中的密码为加密的,所以无法看懂,你可以尝试用下边的方式来查看用户密码. SQL> desc fnd_user; Name ...
- 开源WebGIS实施方案(六):空间数据(PostGIS)与GeoServer服务迁移
研发环境的变更,或者研发完成进行项目现场实施.运维的时候,经常就会面临数据及服务的迁移,这其中就包含空间数据以及GeoServer服务的迁移工作. 这里需要提醒的是:如果采用的是类似的开源WebGIS ...
- .NET高级代码审计(第一课)XmlSerializer反序列化漏洞
0X00 前言 在.NET 框架中的 XmlSerializer 类是一种很棒的工具,它是将高度结构化的 XML 数据映射为 .NET 对象.XmlSerializer类在程序中通过单个 API 调用 ...
- SignalR 设计理念(二)
SignalR 设计理念(二) 实现客户端和服务器端的实时通讯. 前言: 客户端方法忽略大小写,主要原因基于是URL对大小写不敏感的问题,开发者之间为了更好的协同开发,定下的开发者协议. 问题阐述 客 ...
- 纸壳CMS替换默认实现
简介 纸壳CMS是一个开源免费的可视化内容管理建站系统,拖拽就可以轻松建网站. GitHub: http://github.com/SeriaWei/ZKEACMS 纸壳CMS在设计上使用的是ASP. ...