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. RMAN-06564错误的原因及解决办法

    今日在进行数据库恢复时,遭遇RMAN-06564错误,如下: RMAN> restore spfile from autobackup; Starting restore at 01-NOV-1 ...

  2. javaweb-JSP action中附件下载的写法

     附件下载(包括图片,exl,word)在前台必须给出一个iframe 或者类似于window的窗口,另外,Java文件下载不能通过ajax进行请求,必须添加src属性首选,前台的链接拼接html如下 ...

  3. SQLServer 2012 高效分页

    SQLSERVER2012 出新分页功能啦!!!近两天我在自己工作机的PC(没有并发,单一线程)上做了SqlServer  2000/ (2005/2008)/2012三个版本下的分页性能比较. 大致 ...

  4. 5 月编程语言排行榜:Java第一,R跌出Top20

    我们都知道,最近,TIOBE 发布了 5 月份编程语言排行榜.其中,前三名依然健稳不变,他们分别是 Java.C.C++,第四则为: Python ,第五则为 VB .NET. 下面两张图,我们可以看 ...

  5. 解决::processDebugResourcesERROR: In<declare-styleable> FontFamilyFont编译报错

    cordova编译时报错 错误信息 :processDebugResourcesERROR: In <declare-styleable> FontFamilyFont, unable t ...

  6. BootStrap Select2组件

    想使用Select2组件必须引用:select2.min.css和select2.min.js两个文件:如下: 页面写法很简单: 在这里多选是没有搜索功能的,只有单选的时候才会有搜索功能. Selec ...

  7. install nginx error

    the error info : the HTTP gzip module requires the zlib library.You can either disable the module by ...

  8. iOS Programming Auto Layout: Programmatic Constraints 自动布局:通过编程限制

    iOS Programming  Auto Layout: Programmatic Constraints  1.  However, if your views are created in co ...

  9. Katalon Studio(二) 进阶战の Jenkins集成 analytics.katalon 集成

    本教程只针对Katalon Studio 与CI工具之一Jenkins的集成与脚本集的测试报告可视化简单操作. 1.新建一个job 2.新建一个自由风格的job 3.构建触发器 4.构建Windows ...

  10. windows ubuntu bcdeditor

    双系统. 先装windows,后装ubuntu12.04 为了避免grub引导,所以安装bcdeditor. 平时使用没有什么不适,可是每次linux升级内核以后,grub列表可能就会消失,自然是不能 ...