异常

所有的页面驱动代码里都可能抛出异常。

exception selenium.common.exceptions.ElementNotSelectableException(msg=None,screen=None,stacktrace=None)

基于 selenium.common.exceptions.InvalidElementStateException

当试图选中一个不能选中的元素时抛出 例如,选中一个script元素

exception selenium.common.exceptions.ElementNotVisibleException(msg=None,screen=None,stacktrace=None)

基于 selenium.common.exceptions.InvalidElementStateException

当DOM上存在元素但是不可用时,它是不可以进行交互的

最常见的场景是试图点击或者阅读一个隐藏的元素

exception selenium.common.exceptions.ErrorInResponseException(response,msg)

基于 selenium.common.exception.WebDriverException

服务端发生错误

这个异常可能会在 和 firefox扩展或者 远程驱动服务交互时产生

exception selenium.common.exceptions.ImeActivationFailedException(msg=None,screen=None,stacktrace=None)

基于 selenium.common.exceptions.WebDriverException

激活一个 IME引擎失败

exception selenium.common.exceptions.ImeNotAvailableException(msg=None,screen=None,stacktrace=None)

基于 selenium.common.exceptions.WebDriverException

IME支持不可用。 如果 机器上IME支持不可用,这个异常会在所有和IME相关的方法里抛出

exception selenium.common.exceptions.InvalidCookieDomainException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

试图在一个和当前不同的域名下添加cookie

exception selenium.common.exceptions.InvalidElementStateException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

exception selenium.common.exceptions.InvalidSelectorException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.NoSuchElementException

选择器用来寻找元素,但返回的不是一个 WebElement时。 目前只会在XPath表达式选择器里产生,XPath表达式语法错误或者没有选择WebElement时(例:count(//input))

exception selenium.common.exceptions.InvalidSwitchToTargetException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

要切换的窗口或者框架不存在时

exception selenium.common.exceptions.MoveTargetOutOfBoundsException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

提供给ActionsChains move()方法的 目标不可用。

exception selenium.common.exceptions.NoAlertPresentException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

屏幕没有警告框时,切换到警告框

exception selenium.common.exceptions.NoSuchAttributeException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

元素找不到这个属性。

你可能会想在另外一个浏览器上检查某个属性是否存在,有些浏览器相同的属性有不同的属性名(IE8的 innerText和 Firefox的 textContent)

exception selenium.common.exceptions.NoSuchElementException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

找不到元素

如果你发现这个错误,你可能会想要检查下面的东西: 检查你find_by...函数里用的选择器 查找元素的时候页面上还没有这个元素

(页面正在加载)请查阅selenium.webdriver.support.wait.WebDriverWait()来了解如何等待元素的出现

exception selenium.common.exceptions.NoSuchFrameException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.InvalidSwitchToTargetException

要切换的目标框架不存在

exception selenium.common.exceptions.NoSuchWindowException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.InvalidSwitchToTargetException

要切换的目标窗口不存在。

要找到当前活动窗口的句柄,你可以用下面的方法来获取一个句柄列表:

print driver.window_handles

exception selenium.common.exceptions.RemoteDriverServerException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

exception selenium.common.exceptions.StaleElementReferenceException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

当一个元素的引用变旧

变旧的意思是这个元素不在出现在页面的DOM里

可能出现这个异常的原因包括但不限于: 你不在同一个页面,或者你获取到元素之后页面被刷新了 元素被定位后 被移动了又重新加到屏幕上,这样元素就被重置了。典型的例子是javascript框架当值改变,节点就被重建了 * 元素所在的框架或者其他内容被刷新了

exception selenium.common.exceptions.TimeoutException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

规定时间内一个命令没有执行完

exception selenium.common.exceptions.UnableToSetCookieException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

驱动设置cookie失败

exception selenium.common.exceptions.UnexpectedAlertPresentException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

预料之外的警告框。当一个警告框阻塞了webdriver,不能执行任何命令的时候。

exception selenium.common.exceptions.UnexpectedTagNameException(msg=None, screen=None, stacktrace=None)

基于:selenium.common.exceptions.WebDriverException

当一个支持的类没有拿到预料的web元素时

exception selenium.common.exceptions.WebDriverException(msg=None, screen=None, stacktrace=None)

基于:exceptions.Exception

基本的 webdriver 异常