什么时候网站建设,贷款在线申请,包装材料东莞网站建设,免费咨询服务合作协议模板一. StaleElementReferenceException#xff1a; - 原因#xff1a;引用的元素已过期。原因是页面刷新了#xff0c;此时当然找不到之前页面的元素。- 解决方案#xff1a;不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变#xff0c;这时可以使用python的…一. StaleElementReferenceException - 原因引用的元素已过期。原因是页面刷新了此时当然找不到之前页面的元素。- 解决方案不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变这时可以使用python的异常处理语句try…except…异常出现时重新执行关键代码如下编写脚本时使用异常try捕获异常后页面刷新后重新获取元素可以成功找到元素了 二. ElementClickInterceptedException
- 原因元素定位相互覆盖元素已经找到但是无法点击- 解决方案方法一使用强制等待但是每次都有类似的元素无法点击使用强制等待的话会延长脚本执行时间
time.sleep()
注意⚠️之前便遇到过很多次该问题的报错就没有管它但是随着越来越多的元素报该错每次使用强制等待会大大延长脚本的执行时间。方法二显性等待
如下是显示等待的用法和区别
1. element_to_be_clickable--元素是否可点击
2. vibility of element_ located--元素是否可见
3. presence_of_element_located--元素是否存在
如上三种等待方法最开始我一直使用的是presence_of_element_located判断元素是否存在
最终还是报错提示元素元素点击拦截异常。
element_to_be_clickable--等待元素出现可以点击便可以元素定位成功方法三使用JS点击
然而有时即使已经显式等待了却仍然会报错 ElementClickInterceptedException这多少
有点奇怪。为什么 webdriver 有时就是无法点击我不知道也许这和他首先执行的一些验证检查有关
反正就在这一刻它不给你点。
方法三的代码如下 三. NoSuchElementException
原因- 前端出现变更导致定位不到元素- 页面未加载出来元素导致元素找不到需要加个等待- 定位语法错误- 元素可能在新的Windows窗口此时需要切换Windows- 页面出现伪元素显示的是::before、::after这类的元素被伪元素包裹起来的元素经常会定位不到此时就需要对伪元素进行处理了解决方式如http://testingpai.com/article/1638176966906
四.NoSuchWindowException - 没找到窗口句柄handle浏览器版本与驱动不兼容- 注意⚠️Web自动化中存在哪三种切换1. windows窗口切换切换到要操作的窗口2. alert弹出框操作3. iframe切换。操作方式如https://blog.csdn.net/wsy_666/article/details/132325473五.TimeoutException 查找元素超时
六. NoSuchAttributeException 属性错误
六. ElementNotSelectableException 元素没有被选中