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 工具的更多相关文章

  1. 使用UI Automation实现自动化测试 --工具使用

    当前项目进行三个多月了,好久也没有写日志了:空下点时间,补写下N久没写的日志 介绍下两个工具 我本人正常使用的UISpy.exe工具和inspect.exe工具 这是UISPY工具使用的图,正常使用到 ...

  2. UI Automation编程辅助工具Inspect的下载和使用

    UIAutomation微软提供的UI自动化库,主要用AutomationElement类来表示UI 自动化目录树中的一个UI自动化元素,.NET Windows的窗体应用程序和WPF应用程序. In ...

  3. UIAutomation识别UI元素

    MS UI Automation(Microsoft User Interface Automation:UIA)是随.net framework3.0一起发布的,虽然在如今这个几乎每天都有各种新名词 ...

  4. Selenium常用API详解介绍

    转至元数据结尾   由 黄从建创建, 最后修改于一月 21, 2019 转至元数据起始   一.selenium元素定位 1.selenium定位方法 2.定位方法的用法 二.控制浏览器操作 1.控制 ...

  5. 一篇文全面了解DevOps:从概念、关键问题、兴起到实现需求

    一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 转自:一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 2018-06-06 目前在国外,互联网巨头如Google.Faceb ...

  6. DevOps简介

    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI).持续部署(CD)为基础,来优化程式开发.测试.系统运维等所有环节. DevOps的概念 DevOps一词的来自于D ...

  7. 【转】DevOps的前世今生

    转自:http://www.infoq.com/cn/news/2016/09/learn-devops-from-reports 目前在国外,互联网巨头如Google.Facebook.Amazon ...

  8. 使用Python实现基于图像识别的iOS自动化测试

    相对于Android来说,iOS比较封闭.这一点,在设计和评估自动化测试方案的时候感觉尤其强烈.iOS平台上没有特别好用的自动化测试工具.苹果针对iOS提供了UI Automation的Instrum ...

  9. Jenkins学习总结(6)——了解DevOps的前世今生

    DevOps是什么?从哪里来? DevOps的概念 DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建. ...

随机推荐

  1. 配置Oracle监听器

    Oracle的监听和网络服务都可以在Net Manager中配置,如下图.也可以在上面的那个Net Configuration Assistant中配置,只是Net Manager比较方便些. Ora ...

  2. ES6知识点汇总

    MDN镇楼: https://developer.mozilla.org/zh-CN/ 1.ES6新添加数据类型:symbol  -----------   https://developer.moz ...

  3. String的用法——其他功能

    package cn.itcast_06; /* String类的其他功能: 替换功能: String replace(char old,char new) String replace(String ...

  4. LN : leetcode 343 Integer Break

    lc 343 Integer Break 343 Integer Break Given a positive integer n, break it into the sum of at least ...

  5. koa2实现简易的webpack-dev-server

    koa2实现简易的webpack-dev-server热更新 原文https://github.com/zhuangZhou/Blog/issues/3 闲来无事,用koa2撸了一个简易的webpac ...

  6. 网盘资源搜索的一些知识 C#

    针对互联网盘上的资源进行搜索查找.写一个网盘资源搜索的要点主要有以下几点. 1.这个网盘资源搜索的原理就是利用互联网搜索引擎的site 命令. 其次就是针对网页链接进行提取以及处理. 首先就是编写一个 ...

  7. eclipse设置Tomcat超级详细

    刚接触Ajax,创建了jsp文件发现错误 必备软件:tomcat(从apache的官方网站上下载一个,我的是apache-tomcat-8.0.28) 需要下载tomcatPluginV321.zip ...

  8. leetcode:single-number-ii(Java位运算)

    题目 Given an array of integers, every element appears three times except for one. Find that single on ...

  9. Servlet相关的几种中文乱码问题

    Servlet相关的几种中文乱码问题浏览器调用jsp,html等页面中文显示乱码使得文件本身以utf-8字符集编辑保存 让浏览器浏览器以utf-8字符集解析 在浏览器中右键选择编码格式为utf-8: ...

  10. jquery 点击切换div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...