本文主要是介绍Selenium常见报错汇总(转译自官方API文档),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ElementClickInterceptedException
- 无法完成 Element Click 命令,因为接收事件的元素模糊了所请求单击的元素
ElementNotInteractableException
- 当目标元素出现在 DOM 中,但是与该元素的交互影响到其他元素时抛出
ElementNotSelectableException
- 当试图选择一个不可选择的元素时抛出
ElementNotVisibleException
-
当 DOM 中存在一个元素,但该元素不可见时抛出(因此不能与该元素进行交互)
-
ps:在试图单击或读取隐藏在视图中的元素中的文本时最常遇到的问题
ErrorInResponseException
-
当服务器端发生错误时抛出
-
该错误可能发生在与远程驱动程序服务器的通信过程中
ImeActivationFailedException
- 不能正常启动输入法引擎时抛出
ImeNotAvailableException
- 当 IME 支持不可用时抛出
- 如果机器上不支持 IME,则对于每个与 IME 相关的方法调用都会引发此异常
InsecureCertificateException
- 导航导致用户代理点击证书警告,这通常是过期或无效 TLS 证书的结果
InvalidArgumentException
- 传递给命令(common)的参数无效或格式不正确
InvalidCookieDomainException
- 当试图在与当前 URL 不同的域下添加 cookie 时抛出
InvalidCoordinatesException
- 提供给交互操作的坐标无效
InvalidElementStateException
-
当因元素处于无效状态而无法完成命令时引发.
-
这可能是由于试图清除一个不可编辑和可重新定位的元素造成的
InvalidSelectorException
- 当用于查找元素的选择器没有返回 WebElement 时抛出
- 目前,只有当选择器是 xpath 表达式并且在语法上无效时,才会出现这种情况(或者表达式没有选择 WebElements)
InvalidSessionIdException
- 如果给定的会话 id 不在活动会话列表中时抛出,这意味着该会话不存在或不活动
InvalidSwitchToTargetException
- 当要切换的框架或窗口目标不存在时抛出
JavascriptException
- 执行 JavaScript 时发生错误
MoveTargetOutOfBoundsException
- 当提供给 ActionsChains.move ()方法的目标无效时抛出
NoAlertPresentException
- 当切换到无提示警报时抛出
- 这可能是由于当警报还没有出现在屏幕上时,在 Alert ()类上调用一个操作而引起的
NoSuchAttributeException
- 当找不到元素的属性时抛出。
- 你可能希望检查该属性是否存在于你正在测试的特定浏览器中。 某些浏览器可能对同一个属性有不同的属性名。
NoSuchCookieException
- 在当前浏览上下文的活动文档的关联 cookie 中没有找到与给定路径名匹配的 cookie。
NoSuchElementException
- 当元素找不到时抛出。是用户利用selenium编写爬虫脚本时最常见的错误类型之一。
- 如果遇到这个异常,可以检查以下内容:
01.渲染压力大或网络不佳,元素尚未完全加载;
02.需要捕获的元素对象可能不在当前框架中(iframe/frame/window);
NoSuchFrameException
- 当要切换的Frame框架不存在时抛出
NoSuchWindowException
- 当要切换的窗口目标不存在时抛出
- 要查找当前一组活动窗口句柄,可以通过以下方式获得活动窗口句柄的列表
print(driver.window_handles)
ScreenshotException
- 截屏功能无法使用(某些浏览器在静默登陆或最小化时可能出现异常)
SessionNotCreatedException
- 无法创建新会话
StaleElementReferenceException
-
当引用的元素对象 ”过时“ 时抛出(页面刷新,窗口(标签页)切换,网址切换,当前页面下的”下一集“或”下一页“等操作都有可能引发对象过时错误)
-
”过时“意味着之前你通过css ,xpath等方法定位的元素,暂未出现在当前DOM上,重新定位元素是解决方案之一
-
原文解释:
Possible causes of StaleElementReferenceException include, but not
limited to:
You are no longer on the same page, or the page may have
refreshed since the element was located. The element may have been
removed and re-added to the screen, since it was located. Such as an
element being relocated. This can happen typically with a javascript
framework when values are updated and the node is rebuilt. Element may
have been inside an iframe or another context which was refreshed.
TimeoutException
- 当命令没有在足够的时间内完成时抛出。
UnableToSetCookieException
- 当驱动程序无法设置 cookie 时抛出。
UnexpectedAlertPresentException
- 当出现意外警报(Alert)时抛出
- 通常在预期模式阻塞网络驱动程序表单执行更多命令时引发。
UnexpectedTagNameException
- 当支持类没有得到预期的 web 元素时抛出
UnknownMethodException
- 请求的命令匹配一个已知的 URL,但不匹配该 URL 的方法
WebDriverException
- 基本的网络驱动程序异常
这篇关于Selenium常见报错汇总(转译自官方API文档)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!