微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium----三种等待

在做UI自动化测试中,会经常遇到网络环境不好,导致找不到元素而报错,这时就要用到selenium中的等待。在selenium中共有三种等待方式

time(固定等待)
使用格式:time.sleep(seconds)
这种方式虽然可以自定义等待时间,但是在网络环境良好的情况下,也依然会按照设定的时间继续等待,导致自动化时间延长,不建议使用。

implicitly_wait(隐士等待)
使用格式:driver.implicitly_wait(seconds)
隐士等待实际上是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后执行下一步。
隐士等待同样有缺点,我们都知道js一般都是在body的最后加载,实际上这时页面已经加载完了,却还在等待全部页面加载结束。隐士等待对整个driver周期都起作用,
只需在最开始时设置一次就行,不用当做固定等待来使用,在每一步都加上隐士等待。

webdriverwait显示等待)
1、首先要导入webdriverwait

from selenium.webdriver.support.wait import webdriverwait

2、webdriverwait参数
使用格式:webdriverwait(driver,timeout,poll_frequency)

webdriverwait(driver,10,0.5)

driver: 传入WebDriver实例,即我们上例中的driver
timeout: 超时时间,等待的最长时间
poll_frequency: 调用until或until_not中的方法的间隔时间,认是0.5秒
ignored_exceptions: 忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,
则中断代码,抛出异常。认只有NoSuchElementException。

这个模块中共有两种方法:until和until not
until:当某元素出现或什么条件成立则继续执行
until not:当某元素消失或什么条件不成立则继续执行
这两个方法需要引入selenium的一个模块

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

 

 



原文地址:https://www.cnblogs.com/yttbk/p/11024610.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐