Selenium-等待
分为3种
(1)就是通过线程强制等待
Thread.sleep(1000);
(2)隐示等待。就是所有的命令都等待。分为3种
// 这个方法表示全局的等待。意思是针对所有的findElement方法都执行,执行过程是如果第一次找不到,那么每个500ms再去找,直到设定的时间结束;如果找到了就不等待,继续执行
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// 这个方法是针对网页加载的。意思是加载网页时,如果在设定的时间内加载成功了,继续执行;如果在设定的时间到了还没有加载成功再抛出异常。解决有的时候加载慢抛异常的情况。
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
// 针对执行的js脚本。意思是在设定的时间内等待脚本执行,如果设定的时间内脚本还没有执行成功再跑出异常。有的时候脚本执行很慢,没有执行完就跑出异常,这个方法可以设定时间。
driver.manage().timeouts().setScriptTimeout(60, TimeUnit.SECONDS);
(3)显式等待。针对特定的元素
- // 显示等待,针对某一个元素等待,每500ms执行一次查询,直到找到,如果在设定的时间内还没有找到,跑出异常
public void WaitUntil() {
WebDriverWait wait=new WebDriverWait(driver, 10);
WebElement rElement=wait.until(new ExpectedCondition<WebElement>() {
public WebElement apply(WebDriver d) {
return d.findElement(By.cssSelector("input[type='radio'][name='company']:checked"));
}
});
}
- 显式等待 使用ExpectedConditions类中自带方法, 可以进行显试等待的判断。
显式等待可以自定义等待的条件,用于更加复杂的页面等待条件
|
等待的条件 |
WebDriver方法 |
|
页面元素是否在页面上可用和可被单击 |
elementToBeClickable(By locator) |
|
页面元素处于被选中状态 |
elementToBeSelected(WebElement element) |
|
页面元素在页面中存在 |
presenceOfElementLocated(By locator) |
|
在页面元素中是否包含特定的文本 |
textToBePresentInElement(By locator) |
|
页面元素值 |
textToBePresentInElementValue(By locator, java.lang.String text) |
|
标题 (title) |
titleContains(java.lang.String title) |
只有满足显式等待的条件满足,测试代码才会继续向后执行后续的测试逻辑
如果超过设定的最大显式等待时间阈值, 这测试程序会抛出异常。
public static void testWait2(WebDriver driver) {
driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦东软件园培训中心\\我的教材\\Selenium Webdriver\\set_timeout.html");
WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".red_box")));
WebElement element = driver.findElement(By.cssSelector(".red_box"));
((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element);
}
Selenium-等待的更多相关文章
- python selenium等待特定网页元素加载完毕
selenium等待特定元素加载完毕 is_disappeared = WebDriverWait(driver, 8, 0.5, ignored_exceptions=TimeoutExceptio ...
- selenium等待
简介 在selenium操作浏览器的过程中,每一次请求url,selenium都会等待页面加载完成以后, 才会将操作权限在交给我们的程序. 但是,由于ajax和各种JS代码的异步加载问题,当一个页面被 ...
- selenium等待方式之显示等待
有时候,页面元素并未及时加载出来导致后面的步骤无法执行 这里就需要在加载前添加等待时间,让目标元素有足够的时间加载出来 第一种方法:使用time.sleep() 这种方法过于强制,无论元素是否加载出来 ...
- selenium等待机制
等待机制 因为你要查找的标签由于网速等原因迟迟没有加载出来,你就直接获取这个标签,很明显是报错,现有的简单粗暴的解决办法就是time.sleep(3),睡几秒,也就是设置线程等待,等这个标签加载出 ...
- selenium等待机制学习笔记
转载至: https://blog.csdn.net/huilan_same/article/details/52544521 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(x ...
- selenium等待方式详解
这些方式仅供参考,实际使用体验并不好,最好对find_element()方法进行二次封装. # coding=utf-8 from time import sleep from selenium im ...
- selenium 等待页面加载完成
一.隐形加载等待: file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div <html> <head> <tit ...
- [Selenium]等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的
等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的 /** * Check if the element present with cu ...
- Selenium等待某个元素出现之隐式等待
找不到元素这个问题困扰了两天了,一直怀疑是页面div层次太多,定位不准确.于是就从table开始到最后一层精确定位,仍然找不元素.怎么办,在网上搜索答案,说是可以加个隐式试试,于是在执行前加了一句等待 ...
- 2.8 (显示、隐式、线程休眠) selenium 等待方式 ❀
http://blog.csdn.net/pf20050904/article/details/20052485 http://www.cnblogs.com/hellokitty1/p/629584 ...
随机推荐
- Java获取文件路径的几种方法
第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...
- [Angular Testing] Unit Testing -- Test component and service.
Recommend to use angular-cli to generate component and service, so we can get testing templates. ng ...
- The DOT Language
CSDN新首页上线啦,邀请你来立即体验! 立即体验 博客 学院 下载 更多 登录注册 The DOT Language 翻译 2014年04月15日 11:27:07 标签: EBNF / 语言 / ...
- [tmux] Manage terminal workspaces using session naming
It's a lot easier to manage your tmux session when they have sensible names. We'll cover: How to cre ...
- Linux 网络编程系列教程
一.基础理论篇 01.网络协议入门 02.LAN.WAN.WLAN.VLAN 和 VPN 的区别 03.IP 地址介绍 04.广播地址介绍 05.无连接和面向连接协议的区别 06.因特网的IP协议是不 ...
- 切换-5.7-GTID复制切换成传统复制
mysql5.7 gtid和传统复制在线切换,5.7.6 之后 不用重启可以直接在线切换 基本环境 Master Slave MySQL版本 MySQL-5.7.16-X86_64 MySQL ...
- Photoshop怎么实现图片局部马赛克
学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...
- iOS开发系列之三 - UITextField 使用方法小结
// 初始化输入框并设置位置和大小 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 100, 30 ...
- 【机器学习实战】第5章 Logistic回归(逻辑回归)
第5章 Logistic回归 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/ ...
- 转载:APP a打开b软件的附件
Importing & Exporting Documents in iOS Posted by weimenglee - 09 Aug 2011 https://mobiforge.com/ ...