1. 程式人生 > 其它 >Python+selenium常見報錯

Python+selenium常見報錯

Python+pycharm常見報錯

報錯內容:

Element is not currently visible and may not be manipulated

場景:

定位彈窗上面的Select元素

原因分析:

彈窗彈出延時,彈窗上面的元素無法操作

解決方法:

sleep(2)等待載入

報錯內容:

'Element ' is not clickable at point (1273, 576). Other element would receive the click

場景:

原因分析:

頁面載入完成後要操作的元素被別的元素擋住了,導致無法點選

解決方法:

調整螢幕解析度、瀏覽器大小,或者用JS操作滾動條讓元素完全漏出來

報錯內容:

failed to change window state to maximized, current state is normal

場景:

driver.maximize_window()

原因分析:

driver已經最大化過了,導致執行報錯

解決方法:

先檢查下driver有沒有最大化過,或者先作下判斷driver大小

報錯內容:

stale element reference: element is not attached to the page document

場景:

定位元素時報錯

原因分析:

定位元素之前頁面重新整理過,導致頁面失效

解決方法:

加個等待,然後元素重新定位就好

報錯內容:

An invalid or illegal selector was specified

場景:

定位元素時發生

原因分析:

用錯了選擇器,如:xpth的路徑用了 by_css_selector

解決方法:

使用正確的選擇器

報錯內容:

Unable to find element on closed window

場景:

程式碼沒有改動,chrome可以執行 切換到IE就報錯

原因分析:

IE的相容性問題,頁面URL重定向引起。例:http://google.cn 重定向為http://google.cn/login

解決方法:

暫無,

報錯內容:

'NoneType' object has no attribute 'test_one'

TypeError: don't know how to make test from: None

場景:

unittest和paramunittest(引數化模組)引用這2個模組在pycharm中執行時報錯

原因分析:

滑鼠右鍵->執行專案 導致出現上述報錯,主要是游標沒有停在

這個位置執行導致 找不到啟動位置

解決方法:

在如圖位置右鍵->執行,即可以正常

報錯內容:

unknown error: cannot focus element 無法聚焦元素

場景:

定位126郵箱【https://mail.126.com/index_alternate.htm】登入文字框時出現,文字框可以點選,但是send_keys失敗

原因分析:

原因是126郵箱文字框前面蒙了一層label標籤,導致定位不到文字框

解決方法:

有兩種:1、用【https://mail.126.com/】這個網址,沒有這種蒙層;

2、用模擬鍵盤操作,可以輸入

報錯內容:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 41: illegal multibyte sequence

場景:

open(filepath) 時出現該報錯,

原因分析:

檔案中帶有中文字元無法解析,導致報錯

解決方法:

改為:open(filepath,encoding='utf-8') 指定編碼格式即可

報錯內容:

unknown error: chrome failed to start

場景:

建立瀏覽器例項的時候報錯,如圖

原因分析:

原因有很多種:

1、 chrome與chromedriver版本不匹配;

2、 chromedriver路徑沒有新增到環境變數

解決方法:

針對第一種情況,保證2者匹配即可;

第二種情況,可以把chromedriver新增到環境變數,或者在例項化的時候,指定chromedriver的路徑,如圖:

報錯內容:

'NoneType' object is not iterable

場景:

原因分析:

返回值為None,卻用來做for迴圈的迭代,故報錯。

解決方法:

呼叫函式時要檢視,返回值是否符合預期

報錯內容:

'NoneType' object has no attribute 'title'

場景:

原因分析:

如圖,aa()函式返回值為None ,因為NoneType沒有title屬性,所以報錯

解決方法:

檢查呼叫函式的aa(),保證返回值符合預期

報錯內容:

invalid literal for int() with base 10: ''

場景:

原因分析:

如圖,mobile為空字串,轉換int時報該錯誤

解決方法:

避免出現這種空字串轉換的情況,或者用try模組忽視掉該錯誤

報錯內容:

Cannot navigate to invalid URL

場景:

使用這個方法driver.get() 的時候會出現

原因分析:

域名前面沒有加【https://】導致的

解決方法:

加上http協議就不報該錯誤了,可以正常訪問了

報錯內容:

element not interactable

場景:

定位div彈窗裡面元素的時候會遇到

原因分析:

是因為需要定位的元素在頁面中被隱藏了,比如(我的是定位百度賬號退出按鈕,由於,退出按鈕被隱藏,只有當滑鼠移動到使用者賬號時,才顯示出退出按鈕)

解決方法:

解決辦法就是新增滑鼠懸浮定位功能,