Selenium自動(dòng)化測(cè)試框架中常見異常分析及解決方案

發(fā)布時(shí)間:2020-07-16

Selenium 是用于測(cè)試 Web 應(yīng)用程序用戶界面 (UI) 的常用自動(dòng)化測(cè)試框架。它是一款用于運(yùn)行端到端功能測(cè)試的超強(qiáng)工具。您可以使用多個(gè)編程語(yǔ)言編寫測(cè)試,并且 Selenium 能夠在一個(gè)或多個(gè)瀏覽器中執(zhí)行這些軟件測(cè)試。

selenium

1、pycharm中導(dǎo)入selenium報(bào)錯(cuò)

現(xiàn)象: pycharm中輸入from selenium import webdriver, selenium標(biāo)紅

原因1: pycharm使用的虛擬環(huán)境中沒有安裝selenium,

解決方法: 在pycharm中通過設(shè)置或terminal面板重新安裝selenium

原因2: 當(dāng)前項(xiàng)目下有selenium.py,和系統(tǒng)包名沖突導(dǎo)致,

解決方法:重命名這個(gè)文件

2、驅(qū)動(dòng)及本地服務(wù)類異常

1)未找到響應(yīng)的瀏覽器驅(qū)動(dòng)

WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

或WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

原因: 查找不到對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)

解決方法: 下載瀏覽器對(duì)應(yīng)版本的chromedriver

或geckodrivergeckodriver

放到腳本當(dāng)前文件夾下或?qū)⒙窂脚渲玫江h(huán)境變量中, 或放到Python目錄的Scripts下(一般情況下Python的Scripts目錄在環(huán)境變量中), 或使用瀏覽器選項(xiàng)options指定驅(qū)動(dòng)路徑

2)未找到瀏覽器

WebDriverException: Message Can not connect to the Service chromedriver

org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary

原因: 在默認(rèn)路徑下未找到Firefox瀏覽器

解決方法: 重新安裝Firefox瀏覽器

3)驅(qū)動(dòng)和瀏覽器不匹配

SessionNotCreatedException: Message: session not created:

this version of ChromeDriver>

原因: 當(dāng)前使用chromedriver只支持Chrome76版本

解決方法: 查看本地Chrome瀏覽器的版本, 下載對(duì)應(yīng)的chromedriver

4)驅(qū)動(dòng)被防火墻攔截

WebDriverException: Message: Can not connect to the Service IEDriverServer.exe

WebDriverException: Message: Can not connect to the S

原因: iedriverserver.exe被防火墻攔截

解決方法: 防火墻設(shè)置允許

5)連接不上chromedriver服務(wù)

WebDriverException: Message: Can not connect ot the Service chromedriver

原因: 腳本通過127.0.0.1這個(gè)ip訪問本地chromedriver服務(wù), hosts中未配置 127.0.0.1指向localhost

解決辦法: 配置本地hosts, 添加:127.0.0.1 localhost

6)RemoteDriverServerException: 遠(yuǎn)程服務(wù)器異常

解決方法: 確認(rèn)webdriver.Remote()中的遠(yuǎn)程Webdriver服務(wù)是否OK。

7)ErrorInResponseException: Webdriver服務(wù)器響應(yīng)異常。

解決方法:根據(jù)具體報(bào)錯(cuò)信息分析

3、找不到類異常

找不到類異常: 定位/獲取屬性/切換警告框,Frame, 窗口:

1)NoSuchElementException: 找不到元素, 解決方法: 前面加上sleep等待后重試,或換一種定位方式

2)NoSuchAttributeException: 元素沒有這個(gè)屬性, 解決方法: 確認(rèn)定位到的元素是否目標(biāo)元素, 檢查屬性拼寫

3)NoAlertPresentException:沒有找到alert彈出框, 解決方法: 觀察頁(yè)面,查看是否有彈框出現(xiàn), 加上等待或作為偶現(xiàn)元素處理

4)NoSuchFrameException:沒有找到指定的frame或iframe, 解決方法: 查看拼寫或切換使用frame的id/name/index/定位到的frame

5)NoSuchWindowException: 沒找到窗口句柄指定的窗口, 解決方法: 查看使用的窗口句柄變量拼寫

6)UnexpectedAlertPresentException: 出現(xiàn)了彈框而未處理, 解決方法: 切換到警告框并處理, 如果偶現(xiàn),使用try...except處理偶現(xiàn)彈框

7)InvalidSwitchToTargetException: 切換到指定frame或窗口報(bào)錯(cuò), 解決方法: 查看相應(yīng)的frame或窗口是否能定位到

8)UnexpectedTagNameException: 使用Tag Name不合法, 解決方法: 檢查拼寫或使用css selector/xpath

9)TimeoutException:查找元素或操作超時(shí), 解決方法, 稍后重試

4、元素操作異常類: 隱藏/不可操作狀態(tài)

1)ElementNotVisibleException:元素不可見異常, selenium不能直接操作隱藏元素, 解決方法: 加上等待, 使用正常步驟使元素顯示, 或使用js找到該元素的祖先節(jié)點(diǎn)的隱藏屬性(通常為styple="display: none"), 移除該屬性然后定位操作.

2)StaleElementReferenceException: 陳舊元素引用異常, 頁(yè)面刷新或跳轉(zhuǎn)后使用了之前定位到的元素, 解決方法: 重新定位元素并操作

3)InvalidElementStateException: 元素狀態(tài)異常 元素只讀/不可點(diǎn)擊等, 解決方法, 等待或使用js移除元素readonly/disable等限制屬性后操作

4)ElementNotSelectableException:元素不可被選中, 解決方法: 確認(rèn)原始是否為select標(biāo)簽, 是否禁用

5)InvalidSelectorException: 使用的定位方法不支持或xpath語(yǔ)法錯(cuò)誤, 未返回元素, 解決方法: 檢查使用的元素定位器是否拆包, 使用find_element()方法是, 第一個(gè)參數(shù)為'class name', 'link text', 'particial link text' 'css selector', 空格分開, 非下劃線連接, 建議使用By.CLASS_NAME的方式. 使用chrome開發(fā)著工具+Ctrl+F搜索驗(yàn)證自己寫的xpath語(yǔ)法.

6)MoveTargetOutOfBoundsException: 使用ActionChains的move方法時(shí)移動(dòng)到的位置不合適

5、Cookie存取相關(guān)異常

1)InvalidCookieDomainException: Cookie相應(yīng)的域名無(wú)效

2)UnableToSetCookieException: 設(shè)置Cookie異常

6、IME輸入法引擎異常

1)ImeNotAvailableException: 服務(wù)器不支持輸入法

2)ImeActivationFailedException: 輸入法激活異常

更多Selenium知識(shí)閱讀:

Selenium自動(dòng)化測(cè)試流程是什么?Selenium自動(dòng)化測(cè)試流程圖

在Selenium自動(dòng)化測(cè)試框架中如何設(shè)置數(shù)據(jù)校驗(yàn)點(diǎn)?

selenium是怎么定位控件的?selenium獲取頁(yè)面元素用什么方法好?

Selenium自動(dòng)化測(cè)試框架ATF之a(chǎn)pk批量操作

自動(dòng)化測(cè)試框架ATF新增跨項(xiàng)目任務(wù)功能模塊

如何使用ATF自動(dòng)化測(cè)試框架進(jìn)行管理和測(cè)試?

自動(dòng)化測(cè)試框架有哪幾種?主流自動(dòng)化測(cè)試框架有哪些?

本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問題,請(qǐng)權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊(cè)

掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)

產(chǎn)品畫冊(cè)
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系