Selenium快速入门知识6-测试程序优化之Retry优化

227 阅读1分钟
原文链接: zhuanlan.zhihu.com

UI自动化测试程序的最大问题之一在于由于网络不稳定,从而造成页面元素不是不存在,而是还没有被调出来(虽然Selenium提供了显隐式等待,实际工程中会发现这两个方法是有缺陷的,并且好些浏览器根本就不支持)。在这里进行如下的优化。

案例:Retry优化

def find_element_by_id(self,driver,mystr):

try:

return driver.find_element_by_id(mystr)

except NoSuchElementException:

for i in range(2):

try:

time.sleep(2000)

return driver.find_element_by_id(mystr)

except NoSuchElementException:

print("尝试第"+str(i+1)+"次失败")

print("尝试第3次失败")

print("find_element_by_id 没有发现元素"+mystr)

当程序找不到元素的时候,等待2秒钟,继续获取,如果还是没有取到继续等待,在这里设置了3次的等待机会,如果没有报异常信息。