博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化测试---等待
阅读量:5291 次
发布时间:2019-06-14

本文共 1892 字,大约阅读时间需要 6 分钟。

1. 显示等待——WebDriverWait()

WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。

程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。

//页面元素是否在页面上可用和可被点击ExpectedConditions.elementToBeClickable(By locator);//页面元素是否处于被选中状态ExpectedConditions.elementToBeSelected(By locator);//页面元素在页面是否存在ExpectedConditions.presenceOfElementLocated(By locator);//是否包含特定的文本ExpectedConditions.textToBePresentInElement(locator, text)//页面元素值ExpectedConditions.textToBePresentInElementValue(locator, text);//标题ExpectedConditions.titleContains(title);
public static void sendKeysByXPath(WebDriver driver, String path, String key) {        WebDriverWait wait = new WebDriverWait(driver, 10); // 最多等10秒        WebElement element = wait.until(new ExpectedCondition
() { @Override public WebElement apply(WebDriver d) { return d.findElement(By.xpath(path)); } }); highLightElement(driver,element); element.clear(); element.sendKeys(key); }

 

FluentWait:可以动态设置巡检时间

//FluentWait    Wait
wait = new FluentWait
(driver) .withTimeout(60, TimeUnit.SECONDS) .pollingEvery(2, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement ele1 = wait.until(new Function
() { public WebElement apply(WebDriver driver) { return driver.findElement(By.id("xxxxxxx")); } });

2.  隐式等待——implicitly_wait() 对象识别超时时间

设置超时时间,等待页面加载,如果在规定时间加载完成就执行下一步;

弊端:需要等整个页面加载完成,才能执行下一步

周期:对driver整个周期都适用,执行一次即可

pageLoadTimeout.页面加载超时时间

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

3. 强制等待——sleep()

Thread.sleep(2000);

 

转载于:https://www.cnblogs.com/liu-Gray/p/7826321.html

你可能感兴趣的文章
各个平台的mysql重启命令
查看>>
统计单词,字符,和行
查看>>
蓝牙的几种应用层协议作用
查看>>
《Akka应用模式:分布式应用程序设计实践指南》读书笔记8
查看>>
jQuery垂直滑动切换焦点图
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
模运算
查看>>
python多线程的使用
查看>>
团队编程项目作业1-成员简介及分工
查看>>
使用Chrome(PC)调试移动设备上的网页
查看>>
UI基础--手写代码实现汤姆猫动画
查看>>
Python+pytesseract+Tesseract-OCR图片文字识别(只适合新手)
查看>>
使用gitbash来链接mysql
查看>>
docker镜像管理基础
查看>>
黑盒测试和百合测试的优缺点对比
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
装饰者模式
查看>>
右侧导航栏(动态添加数据到list)
查看>>
用Nginx+Lua(OpenResty)开发高性能Web应用
查看>>
81、iOS本地推送与远程推送详解
查看>>