1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 1114Selenium web自动化测试经验分享-设置网页超时加载时间set_page_load_timeout()

1114Selenium web自动化测试经验分享-设置网页超时加载时间set_page_load_timeout()

时间:2022-06-15 21:50:06

相关推荐

1114Selenium web自动化测试经验分享-设置网页超时加载时间set_page_load_timeout()

最开始学习web自动化测试就遇到一个小困扰,有时候设计的用例可能会打开新浪、腾讯这些网站,等待网页加载完成都要小半分钟。最近重拾web自动化测试,又遇到这个困扰。

个人博客:/zyooooxie

今天分享下:通过set_page_load_time()方法来设定时间,然后捕获timeout异常 并通过执行JS命令来停止页面加载 window.stop()

一)set_page_load_timeout()

下面是源码。

可以看到 set_page_load_timeout() 设置网页超时加载时间 需要传入一个time_to_wait

def set_page_load_timeout(self, time_to_wait):"""Set the amount of time to wait for a page load to completebefore throwing an error.:Args:- time_to_wait: The amount of time to wait:Usage:driver.set_page_load_timeout(30)"""try:self.execute(Command.SET_TIMEOUTS, {'pageLoad': int(float(time_to_wait) * 1000)})except WebDriverException:self.execute(Command.SET_TIMEOUTS, {'ms': float(time_to_wait) * 1000,'type': 'page load'})

在Web自动化脚本执行时,浏览器打开网址会一直等待整个页面加载完成,但有时候页面想要的元素早就加载完成了,但是因为个别js之类的东西特别慢,只能干等着。

因为没有设置超时时间而且get方法默认是等待页面全部加载完成才会执行下一步

二)实战

def test_59c(self):"""set_page_load_timeout"""driver = webdriver.Chrome()driver.set_page_load_timeout(8)# 可以自行设置加载时间print('0', time.ctime())try:driver.get("/")# 普通情况下,设置的 超时加载时间远远小于实际网页加载完成需要的时间,所以肯定会报错except:driver.execute_script('window.stop()')# 执行Javascript来停止页面加载 window.stop()print('2', time.ctime())print('3', time.ctime())time.sleep(1)driver.quit()

浏览器关闭前,等待一秒的时候,可以看到网页已经停止加载,浏览器标签栏那个小圈不再转。

def wangzhi(self, net):from mon.exceptions import TimeoutExceptionself.driver = webdriver.Chrome()self.driver.maximize_window()self.driver.set_page_load_timeout(10) # 设定时间try:self.driver.get(net)except TimeoutException: # 捕获timeout异常self.driver.execute_script('window.stop()')# 执行Javascript来停止页面加载 window.stop()

可以把这一部分代码封装成方法,直接调用就可以。但是实际用处不是很大。只是一个小麻烦而已。

交流技术 欢迎+QQ 153132336 zy

个人博客/zyooooxie

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。