[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 ...
随机推荐
- MyBatis_Study_003(字段名与属性名称不一致,resultMap)
源码:https://github.com/carryLess/mbtsstd-003 1.主配置文件 <?xml version="1.0" encoding=" ...
- test20181019 B君的第一题
题意 分析 考场做法同标解. 画图模拟分析发现,无论操作顺序怎样,操作数的奇偶性是不变的. 所以等同求出,以每点为根的操作数奇偶性. 用\(f(x)\)表示x及其子树中的边,包括x到它fa的边,将他们 ...
- emacs之配置之初始目录设置
emacsConfig/dir-setting.el (setq default-directory "~/" )
- 黄聪:WordPress实现HTML5预加载
WordPress实现HTML5预加载方法很简单,把下面代码: <?php if (is_archive() && ($paged > 1) && ($pa ...
- java基础-Map的静态初始化以及Map的遍历等.....................
1.map的静态初始化,以及map遍历的几种方法: package com.cy.test; import java.util.HashMap; import java.util.Iterator; ...
- 查询出结果 给其 加上序号的方法 msql
基本用法 SELECT @rownum := @rownum +1 AS rownum, e.*FROM (SELECT @rownum := 0) r , (select A.id,B.user_u ...
- TCL数组
数组是一组使用索引对应元素的排列方式.常规数组的语法如下所示. set ArrayName(Index) value 用于创建简单数组的例子,如下所示. #!/usr/bin/tclsh set la ...
- windows8.1中组件服务DCOM配置里属性灰色不可修改的解决办法
由于电脑升级,更换成了windows8.1的64位操作系统,今天遇到组件服务中DCOM配置里IIS Admin Service属性呈现灰色,不能修改. 查找官方文档,原来这是win8.1 x64的安全 ...
- 一.jQuery源码解析之总体架构
(function (window, undefined) { //构建jQuery对象 var document = window.document, navigator = window.navi ...
- C++11新特性介绍 02
阅读目录 1. 范围for语句 2. 尾置返回类型 3. =default 生成默认构造函数 4. 类对象成员的类内初始化 5. lambda表达式与bind函数 6. 智能指针share_ptr,u ...