selenium.common.exceptions
在所有的 webdriver 代码中可能发生的异常。
-
exception
selenium.common.exceptions.ElementClickInterceptedException(msg=None, screen=None, stacktrace=None)
元素单击命令无法完成,因为接收事件的元素会遮挡所请求的元素。
-
exception
selenium.common.exceptions.ElementNotInteractableException(msg=None, screen=None, stacktrace=None)
当元素存在于 DOM 中,但与该元素的交互将命中另一个元素时抛出
-
exception
selenium.common.exceptions.ElementNotSelectableException(msg=None, screen=None, stacktrace=None)
在尝试选择不可选择元素时引发。
例如,选择一个 "script" 元素。
-
exception
selenium.common.exceptions.ElementNotVisibleException(msg=None, screen=None, stacktrace=None)
DOM 上存在元素,但它不可见,因此无法与之交互时引发。
在尝试单击或读取隐藏在视图中的元素的文本时遇到的最常见情况。
-
exception
selenium.common.exceptions.ErrorInResponseException(response, msg)
在服务器端发生错误时引发。
当与 firefox 扩展或 remote driver server 进行通信时,可能会发生这种情况。
-
exception
selenium.common.exceptions.ImeActivationFailedException(msg=None, screen=None, stacktrace=None)
激活 IME 引擎失败后抛出
-
exception
selenium.common.exceptions.ImeNotAvailableException(msg=None, screen=None, stacktrace=None)
当 IME 支持不可用时抛出。如果计算机上没有 IME 支持,则会为每个与 IME 相关的方法调用抛出此异常。
-
exception
selenium.common.exceptions.InsecureCertificateException(msg=None, screen=None, stacktrace=None)
安全证书异常。命中一个证书警告,这通常是过期或无效的 TLS 证书的结果。
-
exception
selenium.common.exceptions.InvalidArgumentException(msg=None, screen=None, stacktrace=None)
传递给命令的参数无效或格式错误。
-
exception
selenium.common.exceptions.InvalidCookieDomainException(msg=None, screen=None, stacktrace=None)
尝试在与当前 URL 不同的域下添加 cookie 时抛出。
-
exception
selenium.common.exceptions.InvalidCoordinatesException(msg=None, screen=None, stacktrace=None)
为交互操作提供的坐标无效。
-
exception
selenium.common.exceptions.InvalidElementStateException(msg=None, screen=None, stacktrace=None)
由于元素处于无效状态而无法完成命令时引发。
这可能是由于试图清除不可编辑和复位的元素所致。
-
exception
selenium.common.exceptions.InvalidSelectorException(msg=None, screen=None, stacktrace=None)
当用于查找元素的选择器未返回 WebElement 时抛出。
目前这只发生在选择器是 xpath 表达式并且它在语法上无效(即它不是 xpath 表达式)或表达式没有选择 WebElements(例如:
count(//input)
)时。 -
exception
selenium.common.exceptions.InvalidSessionIdException(msg=None, screen=None, stacktrace=None)
如果给定的会话 ID 不在活动会话列表中,则意味着会话不存在或者它不活动。
-
exception
selenium.common.exceptions.InvalidSwitchToTargetException(msg=None, screen=None, stacktrace=None)
当要切换的 frame 或 window 目标不存在时抛出。
-
exception
selenium.common.exceptions.JavascriptException(msg=None, screen=None, stacktrace=None)
执行用户提供的 JavaScript 时发生错误。
-
exception
selenium.common.exceptions.MoveTargetOutOfBoundsException(msg=None, screen=None, stacktrace=None)
当提供给 ActionsChains move() 方法的目标无效 (即超出文档) 时引发。
-
exception
selenium.common.exceptions.NoAlertPresentException(msg=None, screen=None, stacktrace=None)
切换到未显示警报时抛出。
当屏幕上还没有警报时,可以通过调用 Alert() 类上的操作来引起这种情况。
-
exception
selenium.common.exceptions.NoSuchAttributeException(msg=None, screen=None, stacktrace=None)
无法找到元素的属性时抛出。
可能需要检查该属性是否存在于正在测试的特定浏览器中。
某些浏览器可能具有相同属性的不同属性名称。(IE8
.innerText
与 Firefox.textContent
) -
exception
selenium.common.exceptions.NoSuchCookieException(msg=None, screen=None, stacktrace=None)
在当前浏览器的 cookies 中找不到与给定路径名匹配的 cookie。
-
exception
selenium.common.exceptions.NoSuchElementException(msg=None, screen=None, stacktrace=None)
无法找到元素时抛出。
如果遇到此异常,您可能需要检查以下内容:
-
检查 find_by... 中使用的选择器
-
在查找操作时,元素可能尚未出现在屏幕上(网页仍在加载),参阅
selenium.webdriver.support.wait.WebDriverWait()
编写等待包装器以等待元素出现
-
-
exception
selenium.common.exceptions.NoSuchFrameException(msg=None, screen=None, stacktrace=None)
当要切换的 frame 目标不存在时抛出。
-
exception
selenium.common.exceptions.NoSuchWindowException(msg=None, screen=None, stacktrace=None)
当不存在要切换的窗口目标时抛出。
要查找当前活动窗口句柄集,可以按以下方式获取活动窗口句柄的列表:
print(driver.window_handles)
-
exception
selenium.common.exceptions.RemoteDriverServerException(msg=None, screen=None, stacktrace=None)
远程驱动服务器异常
-
exception
selenium.common.exceptions.ScreenshotException(msg=None, screen=None, stacktrace=None)
无法截屏。
-
exception
selenium.common.exceptions.SessionNotCreatedException(msg=None, screen=None, stacktrace=None)
无法创建新会话。
-
exception
selenium.common.exceptions.StaleElementReferenceException(msg=None, screen=None, stacktrace=None)
当对元素的引用
陈旧
时引发。陈旧意味着该元素不再出现在页面的 DOM 中。
StaleElementReferenceException
的可能原因包括但不限于:-
不再位于同一页面上,或者自找到该元素后页面可能已刷新。
-
该元素可能已被删除并重新添加到屏幕中,因为它已找到。例如重新定位的元素。当更新值并重建节点时,通常可以使用 javascript 框架进行此操作。
-
元素可能已在 iframe 或其他刷新的上下文中。
-
-
exception
selenium.common.exceptions.TimeoutException(msg=None, screen=None, stacktrace=None)
当命令没有在足够的时间内完成时抛出。
-
exception
selenium.common.exceptions.UnableToSetCookieException(msg=None, screen=None, stacktrace=None)
当驱动程序无法设置 cookie 时抛出。
-
exception
selenium.common.exceptions.UnexpectedAlertPresentException(msg=None, screen=None, stacktrace=None, alert_text=None)
出现意外警报时引发。
通常在预期的模式阻止 webdriver 窗体执行更多命令时引发。
-
exception
selenium.common.exceptions.UnexpectedTagNameException(msg=None, screen=None, stacktrace=None)
当支持类没有得到预期的 web 元素时引发。
-
exception
selenium.common.exceptions.UnknownMethodException(msg=None, screen=None, stacktrace=None)
请求的命令与已知 URL 匹配,但与该 URL 的方法不匹配。
-
exception
selenium.common.exceptions.WebDriverException(msg=None, screen=None, stacktrace=None)
webdriver 异常基类