[Selenium]怎样等待元素出现之后再消失,譬如Loading icon
界面上有些元素是要先等它出现,再等它消失,譬如loading icon
这个是等多个loading icon出现后消失
/**
* Wait for loading icon disappear in dialog and Widgets
* @author jz
*/
public void waitForLoadingIconDisappearInDialog(WebDriver driver) {
System.out.println("Wait for loading icons display in dialog or widgets.");
Function<WebDriver, Boolean> waitFn = new Function<WebDriver, Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
try {
for (WebElement el : driver.findElements(By.cssSelector("div.win-bd-mask[style*='display: block'] div.win-bd-mask-waiting"))) {
if (el.isDisplayed()) {
System.out.println("Loading icon display in dialog or widgets.");
return false;
}
}
}
catch (Exception ex) {
return true;
}
return true;
}
}; WebDriverWait wait = new WebDriverWait(driver, 120, 1000);
wait.withMessage("Loading icons should disppear in dialog or widgets in 120s");
wait.until(waitFn);
System.out.println("Loading icons disspear in dialog or widgets.");
}
这个是等一个loading icon 出现后消失
public void waitForLoadingIconDisappearInNewWebPage(WebDriver driver) {
System.out.println("Wait for loading icon display in new web page.");
final By cssSelector=By.cssSelector("div.x-mask-msg");
Function<WebDriver, Boolean> waitFn = new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
try{
if(driver.findElement(cssSelector).isDisplayed()){
System.out.println("Loading icon display in new web page.");
return false;
}
}
catch(Exception e){
return true;
}
return true;
}
};
WebDriverWait wait = new WebDriverWait(driver, 120, 2000);
wait.withMessage("Loading icon should disappear in new web page in 120s");
wait.until(waitFn);
System.out.println("Loading icon disappear in new web page.");
}
如果等显现的元素变成隐藏,相对要简单一些,先等它可见,再等它不可见
public void waitForLoadingIconDisappearInHomePage(WebDriver driver) {
this.waitForElementVisible(driver, By.cssSelector("div#window-waiting-box"), 20 ,"Waiting box should display in 20s");
this.waitForElementNotVisible(driver, By.cssSelector("div#window-waiting-box"), 120 ,"Waiting box should disppear in 120s");
}
[Selenium]怎样等待元素出现之后再消失,譬如Loading icon的更多相关文章
- [Selenium]等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的
等待元素出现之后再消失,界面上的loading icon都属于这种类型,之前的方法总是卡死,换这种方法目前还好用的 /** * Check if the element present with cu ...
- python selenium中等待元素出现及等待元素消失操作
在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块exp ...
- selenium中等待元素的加载
在实际使用中,有时会出现一个元素还没有加载出来,导致无法获取,此时需要selenium处理来等待一段时间,此时处理方法有以下几种: 1.最笨.最简单但是最不推荐的方式: Thread.sleep(ti ...
- selenium webdriver 等待元素
/**显示等待并返回元素 * @param driver * @param locator */ public static WebElement showWait(WebDriver driver, ...
- selenium中的元素操作之三大等待(一)
等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完 ...
- selenium学习之元素等待(四)
--为什么要设置元素等待: 目前大多数web应用程序都是使用AJAX和JavaScript开发,每次加载一个网页,包括静态网页和动态网页,也就是加载各种HTML标签和JS文件.在网页中进行元素定位时, ...
- Python爬虫之设置selenium webdriver等待
Python爬虫之设置selenium webdriver等待 ajax技术出现使异步加载方式呈现数据的网站越来越多,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给定位元素的定位增加 ...
- selenium - 常用等待操作
# 4. 等待操作 # 强制等待from time import sleepsleep(10) # 隐性等待# 设置最长等待时间,在这个时间在只要有个时间点加载完成,则执行下一步代码,比sleep智能 ...
- selenium无法定位元素问题
在用自动化测试工具selenium完成下载任务时,经常会遇到定位不到元素的情况,总结如下: 1.frame/iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame ...
随机推荐
- Loj 2005 相关分析
Loj 2005 相关分析 大力把式子拆开. \[ \begin{aligned} a &= \frac {\sum_{i=L}^{R} (x_i-\bar{x})(y_i-\bar{y})} ...
- 20145237 Exp2 后门原理与实践
20145237<网络对抗>Exp2 后门原理与实践 Windows获得Linux Shell 在Windows下,先使用ipconfig指令查看本机IP: 输入ncat.exe -l - ...
- 蚂蚁金服SOFAMesh在多语言上的实践
在用一项技术前,一定要知道它的优点和缺点,它的优点是否对你有足够的吸引力,它的缺点不足你是否有办法补上.黄挺在CNUTCon全球运维大会上的分享也很不错. 黄挺,蚂蚁金服高级技术专家,蚂蚁金服分布式架 ...
- panabit web认证界面个性化
原理:利用js代码在前端页面进行个性化 1.禁止信息提示 url:http://192.168.0.246:8010/restrict.htm 文件:restrict.png restrict.ht ...
- 02 - Unit03:注册功能实现
注册功能实现 发送Ajax请求 服务器处理 Ajax回调处理 发送Ajax请求 绑定事件: "注册"按钮的单击事件 获取参数: 用户名/密码/昵称 请求地址: /user/regi ...
- vim配置之tagbar
vimConfig/plugin/tagbar-setting.vim let g:tagbar_width=4 map <F12> :TagbarToggle<CR> map ...
- C# 如何捕获一个USB设备发送到PC的数据
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- javascript中原型,构造器,还有E5扩展的默认成员
对象原型所具有的基本特征: 1.toString() 2.toLocaleString() 3.valueOf() 4.constructor() 5.propertyIsnumerable() 6. ...
- PHP图片加水印文字及图片合成缩放
<?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...
- mock 的独立使用
public class Air21QueryMileStoneJobTest{ @InjectMocks Air21QueryMileStoneJob air21QueryMileStoneJob ...