版权声明:本文为博主原创文章,转载请附上博文链接 https://blog.csdn.net/weixin_44065501/article/details/89313409
访问一个网站,是需要加载时间的,加载时间的长短,也在于网速的快慢,为了避免一些记载时间的报错,我们需要在页面的自动化测试当中,添加一些时间等待!
第一种:显式等待(WebDriverWait)
WebDriverWait(browser,timeout,poll_frequency=0.5,ignored_exceptions=None)
字段解释:
browser:浏览器的驱动
timeout:设置最大超时时间,默认单位秒(s)
poll_frequency:检测的间隔时间,默认0.5秒
ignored_exceptions:超时后的异常信息,默认抛出NoSuchElementException异常
另外:WebDriverWait一般由until()或until_not()方法配合使用
WebDriverWait(browser,3).until(browser.find_element_by_id("name"),message=None).send_keys("zhangsan")
解释:如果在HTML上找到id为name这个元素,就输入信息“zhangsan”
WebDriverWait(browser,3).until_not(browser.find_element_by_id("name").is_displayed(), message=None)
解释:判断id为name这个元素是否已经在html上消失,不是肉眼可见的
第二种:隐式等待(implicitly_wait)
隐式等待是通过一定的时长等待页面上某元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常,如果在设置时间内找到某元素,会马上执行后面的操作;
# 等待3秒
browser.implicitly_wait(3)
第三种:休眠(time.sleep)
# 等待3秒
time.sleep(3)
解释:就算在3秒内找到指定元素,也强制等待3秒