Automation 的 Wait 工具
public static WebDriverWait createWait(WebDriver driver) {
return new WebDriverWait(driver, Environment.getTimeOutInSeconds(),Environment.getSleepInMillis());
}
--------------------------------------------------------------------------------
// <1> Wait for element present in Dom, may not visible
/**
* Wait for element present in DOM, may not visible
* @param driver
* @param locator
* @param errorMessage
* @return
*/
1).
public static WebElement waitForElementPresent(WebDriver driver,final By locator, String errorMessage) {
Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage); // withMessage() 为 WebDriverWait 类的方法
} else {
wait.withMessage("Cannot find Element: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static WebElement waitForElementPresent(WebDriver driver, final By locator) {
return waitForElementPresent(driver, locator, "");
}
--------------------------------------------------------------------------------------
<2> Wait for all elements present in Dom, may not visisble
/**
* Wait for elements present in DOM, may not visible
* @param driver
* @param locator
* @param errorMessage
* @return
*/
1).
public static List<WebElement> waitForAllElementsPresent(WebDriver driver,final By locator, String errorMessage{
Function<WebDriver, List<WebElement>> waitFn = new Function<WebDriver, List<WebElement>>() {
@Override
public List<WebElement> apply(WebDriver driver) {
return driver.findElements(locator);
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Elements: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static List<WebElement> waitForAllElementsPresent(WebDriver driver, final By locator) {
return waitForAllElementsPresent(driver, locator, "");
}
--------------------------------------------------------------------------------------
<3> Wait for context element present in DOM, may not visible
/**
* Finding element from the context, then wait for element present in DOM, may not visible
* @param driver
* @param locator
* @param context
* @param errorMessage
* @return
*/
1).
public static WebElement waitForElementPresent(WebDriver driver,final By locator, final WebElement context, String errorMessage) {
Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return context.findElement(locator);
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Element: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static WebElement waitForElementPresent(WebDriver driver,final By locator, final WebElement context) {
return waitForElementPresent(driver, locator, context, "");
}
-------------------------------------------------------------------------
<4> Wait for all the target context elements present in DOM, may not visible
/**
* Finding elements from the context, then wait for all the elements present in DOM, may not visible
* @param driver
* @param locator
* @param context
* @param errorMessage
* @return
*/
1).
public static List<WebElement> waitForAllElementsPresent(WebDriver driver, final By locator,
final WebElement context, String errorMessage) {
Function<WebDriver, List<WebElement>> waitFn = new Function<WebDriver, List<WebElement>>() {
@Override
public List<WebElement> apply(WebDriver driver) {
try {
List<WebElement> els = context.findElements(locator);
if (els.size() > 0) {
return els;
}
return null;
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Elements: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static List<WebElement> waitForAllElementsPresent(WebDriver driver, final By locator,
final WebElement context) {
return waitForAllElementsPresent(driver, locator, context, "");
}
--------------------------------------------------------------------------------
<5> Wait for element visible
/**
* Wait for element visible
*
* @param driver
* @param locator
* @param errorMessage
* @return
*/
1).
public static WebElement waitForElementVisible(WebDriver driver, final By locator, String errorMessage) {
Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
try {
WebElement el = driver.findElement(locator);
if (el.isDisplayed()) {
return el;
}
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Element: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static WebElement waitForElementVisible(WebDriver driver,final By locator) {
return waitForElementVisible(driver, locator, "");
}
--------------------------------------------------------------------------------
<6> Wait for context element visible
/**
* Finding element from the context, wait for element visible
* @param driver
* @param locator
* @param context
* @param errorMessage
* @return
*/
1).
public static WebElement waitForElementVisible(WebDriver driver, final By locator, final WebElement context, String errorMessage) {
Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
try {
WebElement el = context.findElement(locator);
if (el.isDisplayed()) {
return el;
}
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Element: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static WebElement waitForElementVisible(WebDriver driver, final By locator, final WebElement context) {
return waitForElementVisible(driver, locator, context, "");
}
---------------------------------------------------------------------------------------------------------
<7> Wait for all the elements visible
/**
* Wait for all the elements visible
*
* @param driver
* @param locator
* @param errorMessage
* @return
*/
1).
public static List<WebElement> waitForAllElementsVisible(WebDriver driver, final By locator,String errorMessage{
Function<WebDriver, List<WebElement>> waitFn = new Function<WebDriver, List<WebElement>>() {
@Override
public List<WebElement> apply(WebDriver driver) {
try {
List<WebElement> els = driver.findElements(locator);
int count = 0;
for (WebElement el : els) {
if (el.isDisplayed()) {
count++;
}
}
if (count == els.size() && els.size() > 0) {
return els;
}
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Elements: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static List<WebElement> waitForAllElementsVisible(WebDriver driver, final By locator) {
return waitForAllElementsVisible(driver,locator,"");
}
-----------------------------------------------------------------------------------
<8> Wait for all the target context elements visible
/**
* Finding elements from the context, then wait for all the elements present visible
* @param driver
* @param locator
* @param context
* @param errorMessage
* @return
*/
1).
public static List<WebElement> waitForAllElementsVisible(WebDriver driver, final By locator,
final WebElement context,String errorMessage) {
Function<WebDriver, List<WebElement>> waitFn = new Function<WebDriver, List<WebElement>>() {
@Override
public List<WebElement> apply(WebDriver driver) {
try {
List<WebElement> els = context.findElements(locator);
int count = 0;
for (WebElement el : els) {
if (el.isDisplayed()) {
count++;
}
}
if (count == els.size() && els.size() > 0) {
return els;
}
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Elements: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static List<WebElement> waitForAllElementsVisible(WebDriver driver, final By locator,
final WebElement context){
return waitForAllElementsVisible(driver,locator,context,"");
}
----------------------------------------------------------------------------
1).
public static WebElement waitForElementVisible(WebDriver driver, final By locator, final WebElement context, int seconds, String errorMessage) {
Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
try {
WebElement el = context.findElement(locator);
if (el.isDisplayed()) {
return el;
}
} catch (Exception e) {
}
return null;
}
};
WebDriverWait wait = createWait(driver);
if (errorMessage != "") {
wait.withMessage(errorMessage);
} else {
wait.withMessage("Cannot find Element: " + locator.toString());
}
return wait.until(waitFn);
}
2).
public static WebElement waitForElementVisible(WebDriver driver,final By locator, final WebElement context,
int seconds) {
return waitForElementVisible(driver, locator, context, seconds, "");
}
---------------------------------------------------------------------------------
1)./**
* Check if element exists in DOM, maybe not visible
* @param driver
* @param locator
* @return
*/
public static Boolean isElementPresent(WebDriver driver, By locator) {
try {
driver.findElement(locator);
return true;
} catch (Exception e) {
return false;
}
}
2)./**
* Check if element exists from context node, maybe not visible
* @param context
* @param locator
* @return
*/
public static Boolean isElementPresent(WebElement context, By locator) {
try {
context.findElement(locator);
return true;
} catch (Exception e) {
return false;
}
}
3). /**
* Check if element is visible in DOM
* @param driver
* @param locator
* @return
*/
public static Boolean isElementVisible(WebDriver driver, By locator) {
try {
WebElement el = driver.findElement(locator);
if(el.isDisplayed()){
return true;
}
else{
return false;
}
} catch (Exception e) {
return false;
}
}
4). /**
* Check if element is visible from context node
* @param context
* @param locator
* @return
*/
public static Boolean isElementVisible(WebElement context, By locator) {
try {
WebElement el = context.findElement(locator);
if(el.isDisplayed()){
return true;
}
else{
return false;
}
} catch (Exception e) {
return false;
}
}
Automation 的 Wait 工具的更多相关文章
- 使用UI Automation实现自动化测试 --工具使用
当前项目进行三个多月了,好久也没有写日志了:空下点时间,补写下N久没写的日志 介绍下两个工具 我本人正常使用的UISpy.exe工具和inspect.exe工具 这是UISPY工具使用的图,正常使用到 ...
- UI Automation编程辅助工具Inspect的下载和使用
UIAutomation微软提供的UI自动化库,主要用AutomationElement类来表示UI 自动化目录树中的一个UI自动化元素,.NET Windows的窗体应用程序和WPF应用程序. In ...
- UIAutomation识别UI元素
MS UI Automation(Microsoft User Interface Automation:UIA)是随.net framework3.0一起发布的,虽然在如今这个几乎每天都有各种新名词 ...
- Selenium常用API详解介绍
转至元数据结尾 由 黄从建创建, 最后修改于一月 21, 2019 转至元数据起始 一.selenium元素定位 1.selenium定位方法 2.定位方法的用法 二.控制浏览器操作 1.控制 ...
- 一篇文全面了解DevOps:从概念、关键问题、兴起到实现需求
一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 转自:一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 2018-06-06 目前在国外,互联网巨头如Google.Faceb ...
- DevOps简介
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI).持续部署(CD)为基础,来优化程式开发.测试.系统运维等所有环节. DevOps的概念 DevOps一词的来自于D ...
- 【转】DevOps的前世今生
转自:http://www.infoq.com/cn/news/2016/09/learn-devops-from-reports 目前在国外,互联网巨头如Google.Facebook.Amazon ...
- 使用Python实现基于图像识别的iOS自动化测试
相对于Android来说,iOS比较封闭.这一点,在设计和评估自动化测试方案的时候感觉尤其强烈.iOS平台上没有特别好用的自动化测试工具.苹果针对iOS提供了UI Automation的Instrum ...
- Jenkins学习总结(6)——了解DevOps的前世今生
DevOps是什么?从哪里来? DevOps的概念 DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建. ...
随机推荐
- RMAN-06564错误的原因及解决办法
今日在进行数据库恢复时,遭遇RMAN-06564错误,如下: RMAN> restore spfile from autobackup; Starting restore at 01-NOV-1 ...
- javaweb-JSP action中附件下载的写法
附件下载(包括图片,exl,word)在前台必须给出一个iframe 或者类似于window的窗口,另外,Java文件下载不能通过ajax进行请求,必须添加src属性首选,前台的链接拼接html如下 ...
- SQLServer 2012 高效分页
SQLSERVER2012 出新分页功能啦!!!近两天我在自己工作机的PC(没有并发,单一线程)上做了SqlServer 2000/ (2005/2008)/2012三个版本下的分页性能比较. 大致 ...
- 5 月编程语言排行榜:Java第一,R跌出Top20
我们都知道,最近,TIOBE 发布了 5 月份编程语言排行榜.其中,前三名依然健稳不变,他们分别是 Java.C.C++,第四则为: Python ,第五则为 VB .NET. 下面两张图,我们可以看 ...
- 解决::processDebugResourcesERROR: In<declare-styleable> FontFamilyFont编译报错
cordova编译时报错 错误信息 :processDebugResourcesERROR: In <declare-styleable> FontFamilyFont, unable t ...
- BootStrap Select2组件
想使用Select2组件必须引用:select2.min.css和select2.min.js两个文件:如下: 页面写法很简单: 在这里多选是没有搜索功能的,只有单选的时候才会有搜索功能. Selec ...
- install nginx error
the error info : the HTTP gzip module requires the zlib library.You can either disable the module by ...
- iOS Programming Auto Layout: Programmatic Constraints 自动布局:通过编程限制
iOS Programming Auto Layout: Programmatic Constraints 1. However, if your views are created in co ...
- Katalon Studio(二) 进阶战の Jenkins集成 analytics.katalon 集成
本教程只针对Katalon Studio 与CI工具之一Jenkins的集成与脚本集的测试报告可视化简单操作. 1.新建一个job 2.新建一个自由风格的job 3.构建触发器 4.构建Windows ...
- windows ubuntu bcdeditor
双系统. 先装windows,后装ubuntu12.04 为了避免grub引导,所以安装bcdeditor. 平时使用没有什么不适,可是每次linux升级内核以后,grub列表可能就会消失,自然是不能 ...