selenium2 异常

2021-06-24 17:17 更新

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

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 ​异常。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号