您好,登錄后才能下訂單哦!
本篇內容主要講解“python常見異常及處理方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python常見異常及處理方法有哪些”吧!
print(a) # 輸出:NameError: name 'a' is not defined
list1 = [10] print(list1[1]) # 輸出:IndexError: list index out of range
try: raise IOError # 假裝這里有異常,一般針對難以復現的異常 except: print('文件讀寫錯誤')
with open('./中國男足永奪世界冠軍.txt') as file1: file1.read() # 輸出: # FileNotFoundError: [Errno 2] No such file or directory: 'd/中國男足永奪世界冠軍.txt'
print(1/0) # 輸出: # ZeroDivisionError: division by zero
原因: 1、元素表達式寫錯了。 2、元素表達式沒錯,但是元素的確不在當前界面上。 3、元素等待,元素未加載完成,需要等待。 4、內嵌網頁(在一個html標簽里面嵌套一個html)。 1、iframe標簽相當于大房子里面的小房子。 5、多標簽頁(點擊1個元素打開另外1個頁簽-1,例如點擊'知識手冊')。 1、要定位"頁簽-1"頁面的元素需要進入到"頁簽-1"頁面。
1、原因: 1、進行ui自動化的時候,都是先找到元素,然后再操作元素,這是兩個動作,如果在這兩個動作之間,js 把網頁刷新了, 那么操作元素的時候,就會碰到陳舊的元素引用異常。 2、解決: 1、每次操作元素的時候都去實時獲取元素。 2、在po模式中的解決方法是,把每一個元素定位寫成函數。
案例:
class HomePage: def __init__(self, url, driver): self.driver = driver # 我的主頁 def myPageBox(self): return self.driver.find_element_by_css_selector( "[class=\"nav nav-pills nav-stacked custom-nav js-left-nav\"] > li:nth-child(1)") # 項目管理 def prM(self): return self.driver.find_element_by_css_selector( "[class=\"nav nav-pills nav-stacked custom-nav js-left-nav\"] > li:nth-child(2)") # 功能:依次點擊 我的主頁、項目管理、我的主頁 def foo(self): """ 1、點擊之后,頁面刷新了。 2、每一次操作元素時,都是通過函數重新尋找的。 :return: """ self.myPageBox().click() self.prM().click() self.myPageBox().click() hp = HomePage("", driver) hp.foo()
1、捕獲系統異常,轉化成用戶能看懂的提示 2、一個標準的try-except語句,至少要有一個except,也可以多個except,也可以"額外"加else語句與finally語句 3、如果事先不知道是什么異常,可以直接用except,會捕獲所有的異常 try: input = int(input('請輸入一個整數:')) print(1/input) # 有異常捕獲異常,沒異常正常執行 except ZeroDivisionError: # 捕獲0作為分母的異常 print('0不可以作為分母') except ValueError: # 捕獲輸入不是數字無法轉int的異常 print('您輸入的不是整數') except: # 會捕獲所有的異常 print('程序出現異常') else: # 當程序正常執行完畢,沒有出現異常,則執行一次else語句 print('沒有出現異常') finally: # 無論程序是否出現異常,都會執行 print('程序執行完畢!')
try: raise IOError # 假裝這里有異常,一般針對難以復現的異常 except: print('文件讀寫錯誤')
一般用于pytest框架
assert 1 == 2 # 當斷言的結果為真時,斷言不做事情,為假時,斷言生效拋出異常 # 輸出:AssertionError try: assert 1 == 2 except AssertionError: print('斷言為假.')
補充:
1、所有的異常都是Exception的子類,或子類的子類
2、Exception是object的子類的子類
print(NameError.__bases__) print(IndexError.__bases__) print(LookupError.__bases__) print(Exception.__bases__) print(BaseException.__bases__) # 輸出: # (<class 'Exception'>,) # (<class 'LookupError'>,) # (<class 'Exception'>,) # (<class 'BaseException'>,) # (<class 'object'>,)
到此,相信大家對“python常見異常及處理方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。