我是靠谱客的博主 聪明鸡翅,这篇文章主要介绍web自动化测试元素等待,现在分享给大家,希望可以做个参考。

如今很多web页面都在使用AJAX技术,运用这种技术的软件当浏览器加载页面时,页面上的元素可能不是同时加载完成的,这么一来,定位元素就会出现困难,我们可以通过设置元素等待来改善这类问题导致的测试,webdriver提供了三种元素等待的方式:

隐式等待:

原理:隐式等待,就是在创建driver时,为浏览器对象创建一个等待时间,但这个时间不是固定的,并不会影响脚本的执行速度;它并不针对页面上的某一个元素进行等待,当脚本执行到某个元素位置时,如果可以定位,则直接执行,如果不能定位,则需要等待,直到超时抛出异常。
**注意:**在使用隐式等待时,实际上浏览器会在你自己设定的时间内部不断的刷新页面去寻找我们需要的元素
方法:implicity_wait()单位秒

driver = webdriver.Firfox()
driver.implicity_wait()
driver.get(“http://www.baidu.com”)

复制代码
1
2
3
4
5
6
from selenium import webdriver import time driver = webdriver.Firfox() driver.implicity_wait(10) driver.get("http://baiddu.com")

显示等待:

原理:显示等待,就是明确的要等到某个元素的出现或者某个元素的可点击等条件,等不到,就一直等,除非在规定的时间内都没有找到,那么就会跳出exception。(简而言之,就是直到元素出现才去操作,如果超时则报异常)
方法:WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
需求:使用显示等待的方式去等百度一下按钮显示出来,如果出来就点击,否则print()

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.baidu.com") ele = WebDriverWait(driver,10,0.5,ignored_exceptions=None).until(EC.presence_of_element_located((By.ID,"su")),"找不到") print(ele) if ele: ele.send_keys("selenium") time_sleep(5) else: print(ele) driver.quit()

强制等待:

(休眠)
time.sleep(),就是直接让线程休眠,这个时候啥也不做

最后

以上就是聪明鸡翅最近收集整理的关于web自动化测试元素等待的全部内容,更多相关web自动化测试元素等待内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部