Selenium隐示和显性等待
1.隐形等待
隐形等待:隐性等待是指当要查找元素,而这个元素没有马上出现时,告诉WebDriver查询Dom一定时间。默认值是0,但是设置之后,这个时间将在WebDriver对象实例整个生命周期都起作用。
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
2… 显性等待
显式等待 使用ExpectedConditions(期望条件)类中自带方法, 可以进行显试等待的判断。 只有满足显式等待的条件满足,代码才会继续向后执行,如果超过设定的最大显式等待时间, 这程序会抛出异常。
定义的等待条件可以有:
(1)页面元素是否在页面上可用和可被单击:elementToBeClickable(By locator)
(2)页面元素处于被选中状态:elementToBeSelected(WebElement element)
(3)页面元素在页面中存在:presenceOfElementLocated(By locator)
(4)在页面元素中是否包含特定的文本:textToBePresentInElement(By locator)
(5)页面元素值:textToBePresentInElementValue(By locator, java.lang.String text)
(6)标题 (title):titleContains(java.lang.String title)
(7)元素可见(加载出现):visibilityOfElementLocated()
(8)元素不可见(加载消失):invisibilityOfElementLocated()
封装显示等待方法
//检查某个元素是否出现
public WebElement WebDriverWait(By locator,String msg) {WebElement element = null;try {WebDriverWait wait=new WebDriverWait(driver, 5);element = wait.until(ExpectedConditions.visibilityOfElementLocated(locator));System.out.println(msg+"元素出现了");} catch (Exception e) {System.out.println(msg+"元素不存在");e.printStackTrace();}return element;}
应用
//检查头像修改按钮是否出现,返回一个WebElement ,可对该元素进行操作
public WebElement getnaImgLink() throws IOException {return WebDriverWait(getByLoator.readByLoator("navimage"),"头像修改按钮");}
//查找元素是否可点击
public WebElement elementClickWhenReady(By locator, String msg) {WebElement element = null; try {WebDriverWait wait=new WebDriverWait(driver, 5);element = wait.until(ExpectedConditionselementToBeClickable(locator));//element.click();可直接点击元素,但是为了少更改代码,所以注释掉了System.out.println(msg+"元素出现了");} catch (Exception e) {System.out.println(msg+"元素不存在");e.printStackTrace();
}
return element;
}
应用
//检查头像保存按钮是否可点击 ,可点击返回一个WebElement 元素public WebElement getSaveImage() throws IOException {return elementClickWhenReady(getByLoator.readByLoator("savimage"),"头像保存按钮");}
Selenium隐示和显性等待相关推荐
- selenium三大切换的骚操作之显性等待
一.handle窗口切换 当点击某个元素后,会重新生成一个新的页签,但此时我们的操作仍然在原先的窗口当中,如果要在新的窗口继续操作元素,那么就要用到handle窗口切换的方法. 常用方法: windo ...
- 【转】-【Python】- 【selenium】 -selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())
-- 学习Python自动化测试的菜鸡,现在是selenium库webdriver的学习时间 [问题] 在获取页面元素的文本的时候,总是获取不到,或者显示为空: [分析] 页面加载不完全: [解决措施 ...
- Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型
1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- angularjs--控制器的显示与隐示使用
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>13 ...
- selenium隐式等待
有些页面加载js需要一定时间,比如淘宝页面,selenium的隐式等待会在查询元素时自动等待,当元素被发现时再执行提取元素内容的操作,比起 time.sleep()节约了很多时间,配置方法如下: br ...
- selenium中的三种等待方式以及显示等待和隐式等待区别
selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...
- selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python...
前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器.这里我们暂时,支持三 ...
- Selenium断言的使用,等待
自动化测试常用断言的使用方法(python) 自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 这 ...
- selenium中的三种等待方法
在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...
最新文章
- EfficientNetV2:更小,更快,更好的EfficientNet
- Java8 ReentrantLock 源码分析
- python字典和集合双向索引_Python-为什么字典和集合中的顺序是任意的?
- 每秒570000的写入,MySQL如何实现?
- latex中正文前出现一页空白页,且占正文页数
- css html5简介,HTML5 简介......
- java 创建日程到期提醒_晓日程 微信日历加桌面日历,规划时间,掌握未来
- 创始人的领导力和合伙人选择
- R语言:ggplot2精细化绘图——以实用商业化图表绘图为例
- 一篇文章快速搞懂十大排序算法(C++实现源码)
- DPDK DPVS 笔记 -> 基本框架整理
- plc基础知识入门学习
- 软件系统测试用例设计,软件系统测试用例设计步骤
- JavaScript笔记 Object对象
- 万物皆可GAN之pytorch和神经网络
- [GitHub] JavaScript 趋势榜项目(第30周)
- vivo Xplay的usb调试模式在哪里,打开vivo Xplayusb调试模式的教程
- h标签本身自带间距 去除方法
- 等保系列之——网络安全等级保护测评:工作流程及工作内容
- android媲美微信扫码库
热门文章
- Python_week04
- oracle 19c创建表空间、用户及授权
- 购物车(七)-计算商品总价——计算总价-计算属性 数据缓存api-wx.setStorageSync()方法
- TYPEC拓展坞电源管理芯片|IM2603设计方案
- 各个MQ消息队列介绍以及区别比较(RabbitMq ActiveMQ、ZeroMQ、Kafka)
- Python实现监控电脑,CPU或者内存占用过高自动发提醒邮件
- Android开源日志框架xlog
- uniapp获取手机号
- 【推荐】【分享】老公PK老婆
- java集群和分布式 区别_集群与分布式的联系以及区别