1、触发该异常的场景:
用例1和用例2都有同样的元素,用例1执行失败后关闭了句柄没有刷新页面,用例2执行的时候定位到了元素但是click时报异常
2、解决方法:
a、刷新页面,用例1执行关闭后如果没有关闭浏览器就执行刷新操作
driver.refresh()
b、如果场景不允许刷新,那就捕获异常重新定位元素执行click
try:
ele = self.findElement(locator, change_data, timeout)
ele.click()
logger.info('按钮点击 {} 成功'.format(locator))
except StaleElementReferenceException as msg: #捕捉异常StaleElementReferenceException,然后重新获取元素,或者可以driver.refresh()直接刷新页面,但是有些场景不允许刷新页面
logger.info('点击元素 {} 异常,重新获取元素'.format(locator))
ele = self.findElement(locator, change_data, timeout)
ele.click()
except Exception as e:
logger.error('按钮点击 {0} 失败,异常原因:{1}'.format(locator,e))
raise e
版权归原作者 yzTestGroup 所有, 如有侵权,请联系我们删除。