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的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建. ...
随机推荐
- 题解报告:poj 3067 Japan(典型BIT)
Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for th ...
- JEECMSv9.3在金蝶Apusic中间件中无法找到首页的问题处理
在金蝶中间件中启动JEECMS,访问首页显示"页面找不到"信息.而访问后台及其他页面均可正常访问. 经代码查找,发现前台页面的所有地址是通过"com.jeecms.cms ...
- Android偏好设置(3)启动偏好设置后显示的界面PreferenceActivity和PreferenceFragment
Creating a Preference Activity To display your settings in an activity, extend the PreferenceActivit ...
- iOS Programming Localization 本地化
iOS Programming Localization 本地化 Internationalization is making sure your native cultural informatio ...
- markdown表格中怎么插入逻辑或符号|?
| 73向下投票接受 | 如果你删除反引号(****),使用|`黑客作品 a | r ------------|----- `a += x;` | r1 a |= y; | r2 并产生以下输出 在这 ...
- width:100px; min-width:100% 解释:宽度大于100px 就是100% 小于100px 就是100像素
<div style="width:100px; background-color: aqua; min-width:100%">kkk</div>
- vue之packages.json添加注释的正确写法
(1)问题描述 使用vue脚手架vue-cli搭建好项目架构后,在packages.json文件里,加入注释(如下所示).接下来,运行npm run dev命令后出现报错 (2)问题解析 ①记得jso ...
- spring springmvc 获取所有url
@Autowired private RequestMappingHandlerMapping handlerMapping; @Test public void getAllApi() { Map& ...
- iframe天气预报
<iframe style="float: right;" width="420" scrolling="no" height=&qu ...
- PHP实现微信第三方登录的方法
本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请 一开始你需要进入微信公 ...