selenium2 异常
所有的页面驱动代码里都可能抛出异常。
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
异常。
更多建议: