欢乐狗 发表于 2024-6-19 22:43:17

【Python】selenium的非常类selenium.common.exceptions的汇总

我们在使用selenium爬虫的过程中,大概会碰到各种报错,比方:
https://img-blog.csdnimg.cn/direct/232132a41e1a498e9b37736f09e091f6.png
这些报错是selenium.common.exceptions 是 Selenium WebDriver 库中的一个模块,它包罗了 WebDriver 操作中大概碰到的各种非常类。这些非常类帮助开辟者在自动化测试过程中识别和处理特定的错误环境。
   以下是一些常见的网页获取是会碰到的非常报错:

[*] NoSuchElementException: 当尝试查找一个不存在的元素时抛出,大概driver控制的网页已经发生跳转,而原先的网页元素已经无法抓取到了。
详细参考:【Python】selenium使用find_element时办理【NoSuchElementException】题目的方法
[*] NoSuchFrameException: 当尝试切换到一个不存在的框架时抛出。
[*] NoSuchWindowException: 当尝试切换到一个不存在的窗口时抛出。
详细参考:【Python】selenium使用find_element时办理【NoSuchWindowException】题目的方法
[*] NoSuchAttributeException:属性错误
[*] NoAlertPresentException:没找到alert弹出框
[*] StaleElementReferenceException: 当尝试操作一个已颠末时(比如页面已经刷新)的元素时抛出。也就是页面元素过期了,无法引用元素,还在无法点击它,比如页面已经刷新或导航到另一个页面,但是尝试操作的元素引用仍然是旧页面上的元素。
详细参考:【Python】selenium使用find_element时办理【StaleElementReferenceException】题目的方法
[*] ElementNotVisibleException: 当尝试操作一个不可见的元素时抛出。
[*] ElementNotSelectableException: 当尝试选择一个不可选择的元素时抛出。
[*] ElementClickInterceptedException:当尝试点击一个元素时,如果有另一个元素覆盖在它上面,导致点击事件被拦截,就会抛出这个非常。
详细参考:【Python】selenium 点击某个按钮 click() 出现的报错题目–ElementClickInterceptedException(全!)
[*] ElementNotVisibleException:当尝试点击一个不在屏幕上可见的元素时,会抛出这个非常。
[*] ElementNotInteractableException:当尝试与一个不可交互的元素举行交互(比方,一个被禁用的按钮或一个隐藏的输入框)时,会抛出这个非常。
[*] InvalidElementStateException: 当元素处于一个无效状态,不能执行盼望的操作时抛出。
[*] InvalidSelectorException: 当使用无效的选择器查找元素时抛出。
[*] TimeoutException: 当操作超出了设定的等候时间限制时抛出。
13 . WebDriverException: 所有 WebDriver 非常的基类。
在编写测试代码时,可以通过try except 来捕获这些非常来处理错误环境,可以重试操作、记录错误信息或者停止测试等等。
如果各人对 selenium.common.exceptions 感爱好,也可以进入exceptions 查看底层代码的解释,统共有30+个错误类,以上只是列举了比较常用的部分。
感谢你的喜好,整理不易,各人可以点个小小的关注~
参考:

[*]Selenium2+python自动化57-捕获非常(NoSuchElementException)【转载】
[*]如果对其他错误感爱好,可以看 :全网最强总结,Selenium自动化测试非常+处理总结,吐血整理…

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Python】selenium的非常类selenium.common.exceptions的汇总