记selenium,偶发StaleElementReferenceException异常处理方法

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值