起因:最近自做乙個ui自動化註冊的事情,在使用 webdriver 的過程中遇到了頁面元素可能不存在的問題,因為元素不存在,再執行元素的相關操作的時候就會超時等待和丟擲異常,所以為了處理不存在,就是用了 try / catch 的方式處理了一下,如果 try 中的不存在,那就執行 catch 中的**邏輯。
try
catch
(nosuchelementexception e)
上面的**存在的問題:
1、 **不美觀思考:2、使用 try / catch 時如果元素不存在,等待的時間很長,大約需要30秒,這樣的速度實在是影響效率
真的只有使用try / catch 唯一可能的方式?
解決辦法:
可以使用driver.findelements( by.id("element") ).size() != 0
來判斷元素是否存在,可以避免 try / catch,提高**執行效率
// 設定超時等待為0毫秒
driver.
manage()
.timeouts()
.implicitlywait(0
, timeunit.milliseconds)
;boolean elementexists;
// 利用seiz()方法來判斷元素是否存在
elementexists = driver.
findelements
( by.id(
"element_a"))
.size()
!=0;if
(elementexists)
else
// 重新設定預設的超時等待時間
driver.
manage()
.timeouts()
.implicitlywait(30
, timeunit.seconds)
;
webdriver中的等待
webdriver中的等待 主要講解webdriverwait 強制等待 sleep import time sleep 5 等待5秒 設定固定休眠時間,單位為秒。由python的time包提供,匯入 time 包後就可以使用。缺點 不智慧型,使用太多的sleep會影響指令碼執行速度。隱式等待 im...
webdriver中多視窗 控制代碼(handle)
元素有屬性,瀏覽器的視窗其實也有屬性的,叧是你看丌刡,瀏覽器視窗的屬性用控制代碼 handle 來識刪。獲取當前頁面的控制代碼 driver.current window handle 獲取所有控制代碼 driver.window handles 切換視窗 driver.switch to.wind...
如何檢查C 中的記憶體洩漏
如何檢查c 中的記憶體洩漏 記憶體洩漏是程式設計中常常見到的乙個問題,我所遇過的原因有兩個 1.分配完記憶體後忘記 2.有問題,造成想 卻無法 例如 int p new int p new int p指標修改,原來申請記憶體的位址沒有記錄下來,於是無法釋放 下面介紹如何檢查記憶體洩漏 1.包含標頭檔...