selenium2 異常

2021-06-24 17:17 更新

所有的頁(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 ?異常。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)