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隐示和显性等待相关推荐

  1. selenium三大切换的骚操作之显性等待

    一.handle窗口切换 当点击某个元素后,会重新生成一个新的页签,但此时我们的操作仍然在原先的窗口当中,如果要在新的窗口继续操作元素,那么就要用到handle窗口切换的方法. 常用方法: windo ...

  2. 【转】-【Python】- 【selenium】 -selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())

    -- 学习Python自动化测试的菜鸡,现在是selenium库webdriver的学习时间 [问题] 在获取页面元素的文本的时候,总是获取不到,或者显示为空: [分析] 页面加载不完全: [解决措施 ...

  3. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  4. angularjs--控制器的显示与隐示使用

    <!DOCTYPE html> <html> <head><meta charset="utf-8"><title>13 ...

  5. selenium隐式等待

    有些页面加载js需要一定时间,比如淘宝页面,selenium的隐式等待会在查询元素时自动等待,当元素被发现时再执行提取元素内容的操作,比起 time.sleep()节约了很多时间,配置方法如下: br ...

  6. selenium中的三种等待方式以及显示等待和隐式等待区别

    selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...

  7. selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python...

    前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器.这里我们暂时,支持三 ...

  8. Selenium断言的使用,等待

    自动化测试常用断言的使用方法(python) 自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 这 ...

  9. selenium中的三种等待方法

    在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...

最新文章

  1. EfficientNetV2:更小,更快,更好的EfficientNet
  2. Java8 ReentrantLock 源码分析
  3. python字典和集合双向索引_Python-为什么字典和集合中的顺序是任意的?
  4. 每秒570000的写入,MySQL如何实现?
  5. latex中正文前出现一页空白页,且占正文页数
  6. css html5简介,HTML5 简介......
  7. java 创建日程到期提醒_晓日程 微信日历加桌面日历,规划时间,掌握未来
  8. 创始人的领导力和合伙人选择
  9. R语言:ggplot2精细化绘图——以实用商业化图表绘图为例
  10. 一篇文章快速搞懂十大排序算法(C++实现源码)
  11. DPDK DPVS 笔记 -> 基本框架整理
  12. plc基础知识入门学习
  13. 软件系统测试用例设计,软件系统测试用例设计步骤
  14. JavaScript笔记 Object对象
  15. 万物皆可GAN之pytorch和神经网络
  16. [GitHub] JavaScript 趋势榜项目(第30周)
  17. vivo Xplay的usb调试模式在哪里,打开vivo Xplayusb调试模式的教程
  18. h标签本身自带间距 去除方法
  19. 等保系列之——网络安全等级保护测评:工作流程及工作内容
  20. android媲美微信扫码库

热门文章

  1. Python_week04
  2. oracle 19c创建表空间、用户及授权
  3. 购物车(七)-计算商品总价——计算总价-计算属性 数据缓存api-wx.setStorageSync()方法
  4. TYPEC拓展坞电源管理芯片|IM2603设计方案
  5. 各个MQ消息队列介绍以及区别比较(RabbitMq ActiveMQ、ZeroMQ、Kafka)
  6. Python实现监控电脑,CPU或者内存占用过高自动发提醒邮件
  7. Android开源日志框架xlog
  8. uniapp获取手机号
  9. 【推荐】【分享】老公PK老婆
  10. java集群和分布式 区别_集群与分布式的联系以及区别