所有的頁(yè)面驅(qū)動(dòng)代碼里都可能拋出異常。
exception selenium.common.exceptions.ElementNotSelectableException(msg=None,screen=None,stacktrace=None)
基于 ?selenium.common.exceptions.InvalidElementStateException
?
當(dāng)試圖選中一個(gè)不能選中的元素時(shí)拋出。 例如,選中一個(gè)?script
?元素。
exception selenium.common.exceptions.ElementNotVisibleException(msg=None,screen=None,stacktrace=None)
基于 ?selenium.common.exceptions.InvalidElementStateException
?
當(dāng)?DOM
?上存在元素但是不可用時(shí),它是不可以進(jìn)行交互的。
最常見(jiàn)的場(chǎng)景是試圖點(diǎn)擊或者閱讀一個(gè)隱藏的元素。
exception selenium.common.exceptions.ErrorInResponseException(response,msg)
基于? selenium.common.exception.WebDriverException
?
服務(wù)端發(fā)生錯(cuò)誤。
這個(gè)異??赡軙?huì)在 和 ??firefox??擴(kuò)展或者 遠(yuǎn)程驅(qū)動(dòng)服務(wù)交互時(shí)產(chǎn)生。
exception selenium.common.exceptions.ImeActivationFailedException(msg=None,screen=None,stacktrace=None)
基于 ?selenium.common.exceptions.WebDriverException
?
激活一個(gè) IME引擎失敗。
exception selenium.common.exceptions.ImeNotAvailableException(msg=None,screen=None,stacktrace=None)
基于 ?selenium.common.exceptions.WebDriverException
?
IME支持不可用。 如果 機(jī)器上IME支持不可用,這個(gè)異常會(huì)在所有和IME相關(guān)的方法里拋出。
exception selenium.common.exceptions.InvalidCookieDomainException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
試圖在一個(gè)和當(dāng)前不同的域名下添加?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
?
選擇器用來(lái)尋找元素,但返回的不是一個(gè) ?WebElement
?時(shí)。 目前只會(huì)在?XPath
?表達(dá)式選擇器里產(chǎn)生,?XPath
?表達(dá)式語(yǔ)法錯(cuò)誤或者沒(méi)有選擇?WebElement
?時(shí)(例:?count(//input)
?)。
exception selenium.common.exceptions.InvalidSwitchToTargetException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
要切換的窗口或者框架不存在時(shí)。
exception selenium.common.exceptions.MoveTargetOutOfBoundsException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
提供給?ActionsChains move()
?方法的 目標(biāo)不可用。
exception selenium.common.exceptions.NoAlertPresentException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
屏幕沒(méi)有警告框時(shí),切換到警告框。
exception selenium.common.exceptions.NoSuchAttributeException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
元素找不到這個(gè)屬性。
你可能會(huì)想在另外一個(gè)瀏覽器上檢查某個(gè)屬性是否存在,有些瀏覽器相同的屬性有不同的屬性名(IE8的 ?innerText
?和 Firefox的? textContent
?)。
exception selenium.common.exceptions.NoSuchElementException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
找不到元素。
如果你發(fā)現(xiàn)這個(gè)錯(cuò)誤,你可能會(huì)想要檢查下面的東西: 檢查你?find_by...
?函數(shù)里用的選擇器,查找元素的時(shí)候頁(yè)面上還沒(méi)有這個(gè)元素。
(頁(yè)面正在加載)請(qǐng)查閱?selenium.webdriver.support.wait.WebDriverWait()
?來(lái)了解如何等待元素的出現(xiàn)。
exception selenium.common.exceptions.NoSuchFrameException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.InvalidSwitchToTargetException
?
要切換的目標(biāo)框架不存在。
exception selenium.common.exceptions.NoSuchWindowException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.InvalidSwitchToTargetException
?
要切換的目標(biāo)窗口不存在。
要找到當(dāng)前活動(dòng)窗口的句柄,你可以用下面的方法來(lái)獲取一個(gè)句柄列表:
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
?
當(dāng)一個(gè)元素的引用變舊:
變舊的意思是這個(gè)元素不在出現(xiàn)在頁(yè)面的DOM里。
可能出現(xiàn)這個(gè)異常的原因包括但不限于: 你不在同一個(gè)頁(yè)面,或者你獲取到元素之后頁(yè)面被刷新了 元素被定位后 被移動(dòng)了又重新加到屏幕上,這樣元素就被重置了。典型的例子是javascript框架當(dāng)值改變,節(jié)點(diǎn)就被重建了 * 元素所在的框架或者其他內(nèi)容被刷新了。
exception selenium.common.exceptions.TimeoutException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
規(guī)定時(shí)間內(nèi)一個(gè)命令沒(méi)有執(zhí)行完。
exception selenium.common.exceptions.UnableToSetCookieException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
驅(qū)動(dòng)設(shè)置?cookie
?失敗。
exception selenium.common.exceptions.UnexpectedAlertPresentException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
預(yù)料之外的警告框。當(dāng)一個(gè)警告框阻塞了?webdriver
?,不能執(zhí)行任何命令的時(shí)候。
exception selenium.common.exceptions.UnexpectedTagNameException(msg=None, screen=None, stacktrace=None)
基于:?selenium.common.exceptions.WebDriverException
?
當(dāng)一個(gè)支持的類(lèi)沒(méi)有拿到預(yù)料的web元素時(shí)。
exception selenium.common.exceptions.WebDriverException(msg=None, screen=None, stacktrace=None)
基于:?exceptions.Exception
?
基本的 ?webdriver
?異常。
更多建議: