西安专业做网站的,门户网站建设方案,天辰建设网官网,wordpress tag文件这篇文章主要为大家介绍了python自动化测试selenium的核心技术三种等待方式示例详解#xff0c;有需要的朋友可以借鉴参考下#xff0c;希望能够有所帮助#xff0c;祝大家多多进步早日升职加薪
UI自动化测试过程中#xff0c;可能会出现因测试环境不稳定、网络慢等情况有需要的朋友可以借鉴参考下希望能够有所帮助祝大家多多进步早日升职加薪
UI自动化测试过程中可能会出现因测试环境不稳定、网络慢等情况如果不做任何处理的话会出现无法定位到特定元素而报错导致自动化测试无法顺利执行。
slenium自动化测试中主要涉及三种等待方式 1 使用python自带模块time的sleep方式
缺点即使网络条件较好时依旧按照预定固定时间等待一般不建议使用脚本调试可使用。
示例脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from selenium import webdriver from time import sleep class TestWait(object): driver webdriver.Chrome() driver.get(http://www.baidu.com) def test_sleep(self): self.driver.find_element_by_id(kw).send_keys(sleep test) # sleep(2) #等待固定时间 self.driver.implicitly_wait(2) # 隐式等待 self.driver.find_element_by_id(su).click() self.driver.quit() if __name__ __main__: waitTestWait() wait.test_sleep() 2 隐式等待implicitly_wait
隐式等待设置的时间是最长的时间如果在规定时间内网页加载完成则执行下一步否则一直等到时间结束然后执行下一步。
注意隐式等待对driver整个周期都起作用一般在最开始设置一次就可以了。不要当做固定等待哪里都设置隐式等待。
示例脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 from selenium import webdriver from time import sleep class TestWait(object): driver webdriver.Chrome() driver.get(http://www.baidu.com) def test_sleep(self): self.driver.find_element_by_id(kw).send_keys(sleep test) self.driver.implicitly_wait(2) # 隐式等待 self.driver.find_element_by_id(su).click() self.driver.quit() if __name__ __main__: waitTestWait() wait.test_sleep() 现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号110685036【暗号csdn999】 3 显示等待WebDriverWait
显式等待允许等待条件的发生所以非常适合在浏览器及其DOM和WebDriver脚本之间同步状态。 需要引入包from selenium.webdriver.support.wait import WebDriverWait WebDriverWait参数说明 WebDriverWait(driver, timeout3).until(some_condition) 两种方法until和util_not 场景
打开百度首页等待页面标题出现百度一下你就知道再执行输入搜索关键词点击“百度一下”按钮。
示例脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ec class TestWait(object): def setup(self): self.driver webdriver.Chrome() self.driver.get(http://www.baidu.com) def test_webdreiverwait(self): webdreiverwaits WebDriverWait(self.driver,2) webdreiverwaits.until(ec.title_is(百度一下你就知道)) self.driver.find_element_by_id(kw).send_keys(test_webdreiverwait test) self.driver.find_element_by_id(su).click() def teardown(self): self.driver.quit() if __name__ __main__: waitTestWait() wait.test_webdreiverwait()
三种等待完整示例脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 from selenium import webdriver from time import sleep from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as ec class TestWait(object): def setup(self): self.driver webdriver.Chrome() self.driver.get(http://www.baidu.com) def test_sleep(self): self.driver.find_element_by_id(kw).send_keys(sleep test) sleep(2) #等待固定时间 self.driver.find_element_by_id(su).click() def test_implicitly(self): self.driver.find_element_by_id(kw).send_keys(implicitly test) self.driver.implicitly_wait(2) # 隐式等待 self.driver.find_element_by_id(su).click() def test_webdreiverwait(self): webdreiverwaits WebDriverWait(self.driver,2) webdreiverwaits.until(ec.title_is(百度一下你就知道)) self.driver.find_element_by_id(kw).send_keys(test_webdreiverwait test) self.driver.find_element_by_id(su).click() def teardown(self): self.driver.quit() if __name__ __main__: waitTestWait() # wait.test_sleep() # wait.test_implicitly() wait.test_webdreiverwait()
【常见问题】运行脚本报empty suite 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from selenium import webdriver from time import sleep class TestWait(object): def __init__(self): self.driver webdriver.Chrome() self.driver.get(http://www.baidu.com) def test_sleep(self): self.driver.find_element_by_id(kw).send_keys(sleep test) # sleep(2) #等待固定时间 self.driver.implicitly_wait(2) # 隐式等待 self.driver.find_element_by_id(su).click() self.driver.quit() if __name__ __main__: waitTestWait() wait.test_sleep() 【解决方法】脚本修改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 from selenium import webdriver from time import sleep from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait class TestCase(object): def setup(self): self.driver webdriver.Chrome() self.driver.get(http://www.baidu.com) # sleep(2) def test_sleep(self): self.driver.find_element_by_id(kw).send_keys(selenium) # sleep(2) # 线程阻塞 blocking wait self.driver.find_element_by_id(su).click() # sleep(3) def test_implicitly(self): self.driver.implicitly_wait(10) self.driver.find_element_by_id(kw).send_keys(selenium) # sleep(2) # 线程阻塞 blocking wait self.driver.find_element_by_id(su).click() # sleep(3) def test_wait(self): wait WebDriverWait(self.driver,2) wait.until(EC.title_is(百度一下你就知道)) self.driver.find_element_by_id(kw).send_keys(selenium) # sleep(2) # 线程阻塞 blocking wait self.driver.find_element_by_id(su).click() # sleep(3) def teardown(self): self.driver.quit() if __name__ __main__: case TestCase() # case.test_sleep() # case.test_implicitly() case.test_wait()
以selenium自动化测试学习总结
以上就是python自动化测试selenium核心技术三种等待方式详解的详细内容更多关于selenium三种等待方式的资料请关注小编相关文章end如果文章对你有帮助记得点赞收藏加关注。会不定期分享一些干货哦......