一, AttributeError: 'NoneType' object has no attribute 'click' 出現原因,解決辦法
AttributeError: 'NoneType' object has no attribute 'click'這句話的意思是元素沒有點擊的這個屬性。同理,AttributeError: 'NoneType' object has no attribute 'send_keys()’,是沒有輸入值的屬性。
當python代碼出現這種問題時,一般有2種情況。
一是沒有找到這個元素,比如你想在設置中點擊“語言和輸入法”,但沒定位到這個元素。在page頁面中,你定義的方法沒錯,通過id,xpath,等方法找元素也沒錯。死活找不出原因時,報錯的原因是uiautomatorviewer未掃描到控件。比如掃描的是第一屏,你的元素需要滑到第三屏才出現。在第一屏找不到你的元素所以會報錯。這是第一種情況。
第二種情況是元素確實被uiautomatorviewer掃描到。但還報錯,說明這個元素真沒這個屬性。但這種機率很小,因為你不會給按鈕加清空操作,給文本框加點擊操作。

以上個圖片為例,錯誤原因是第一種,通過find_ele_ById_And_content方法找不到元素。解決思路:可在base_action.py文件中找到你定義的這個方法,
def find_ele_ById_And_content(self, loc, content):
list = self.driver.find_elements(By.ID,loc[1])
for i in list:
if i.get_attribute('text') == content:
return i
這行代碼正確,那么我們就一步步print,如果哪一步不print,則哪一行出錯,
def find_ele_ById_And_content(self, loc, content):
list = self.driver.find_elements(By.ID,loc[1])
print('方法執行到這了')
print(len(list)) #這行和上一行是檢查list的長度,print(list)是list的內容。要上一行的目的是方便看你打印這行的位置
for i in list:
t1 = i.get_attribute('text')
print(t1) #打印list里元素的屬性text
if t1 == content:
print(i) #打印元素
return i
這是一種思路,用這種方法還是解決不了。元素未顯示的解決辦法是在base_action里封裝一個滑屏找元素,如果找到就返回這個元素,這個元素在page里進行操作,
如點擊,輸入等操作。如果向上滑到頁面最底部,向下滑到頁面最頂部,向左滑到最右部,向右滑到最左部還找不到,就報錯。
在下一篇博客封裝滑屏操作。
二,TimeoutException
TimeoutException超時錯誤,即沒找到元素。
三,UnicodeDecodeError: 'gbk' codec can't decode byte 0xa5 in position 59: illegal multibyte sequence
f = open('文件地址','r',encoding='UTF-8')
f.read()
這樣就可以讀取出來了
比如
import yaml
def main():
with open('./data.yml', 'r', encoding='UTF-8') as f:
data = yaml.load(f)
print(type(data))
print(data)
if __name__ == '__main__':
main()
代碼提示單詞
AttributeError: 屬性錯誤,
NameError:試圖訪問的變量名不存在
SyntaxError:語法錯誤,代碼形式錯誤
Exception:所有異常的基類,因為所有python異常類都是基類Exception的其中一員,異常都是從基類Exception繼承的,並且都在exceptions模塊中定義。
IOError:一般常見於打開不存在文件時會引發IOError錯誤,也可以解理為輸出輸入錯誤
KeyError:使用了映射中不存在的關鍵字(鍵)時引發的關鍵字錯誤
IndexError:索引錯誤,使用的索引不存在,常索引超出序列范圍,什么是索引
TypeError:類型錯誤,內建操作或是函數應於在了錯誤類型的對象時會引發類型錯誤
ZeroDivisonError:除數為0,在用除法操作時,第二個參數為0時引發了該錯誤
ValueError:值錯誤,傳給對象的參數類型不正確,像是給int()函數傳入了字符串數據類型的參數。
