selenium處理顯性等待

2022-05-23 06:27:13 字數 1228 閱讀 6327

1.在做ui自動化測試時,發現有些頁面元素需要等待較長時間才能出現,如有些介面是非同步,頁面操作結果資訊不能及時展示,這時候

要檢查操作結果是否正確,需要用到selenium的顯性等待,如下圖,操作結果是通過輪詢的方式展示:

2.selenium中 expected_conditions.presence_of_element_located() 可以解決顯示等待的問題,**如下:

def is_fail_exist(locator):

try:

#檢查頁面上出現錯誤元素資訊是否存在

webdriverwait(driver, 20, 0.5).until(ec.presence_of_element_located((by.xpath,locator)))

#點選錯誤提示框,只有點選錯誤提示框,才會展示詳細錯誤資訊

driver.find_element_by_xpath('//body/div[1]/div/div/div[4]/div/div[1]').click()

time.sleep(2)

#列印詳細錯誤結果

print(f'操作失敗:')

#關閉錯誤提示框

driver.find_element_by_xpath('//*[@id="console"]/div[4]/div/div[1]/span').click()

time.sleep(1)

except timeoutexception:

#如果沒有出現錯誤資訊,提示操作成功

print('操作成功')

finally:

driver.close()

is_fail_exist('//body/div[1]/div/div/div[4]/div/div[2]/div/div/div/div[2]')

輸出結果:

操作失敗:delete instance failed, accesskeyid:ltai4fhqrcwgzkkxlzb85ruc, requestid: 2ad89469-3110-426a-ace9-cf5e6fa6014d, errortype: client, errorcode: invalidinstanceid.notfound, errormsg: the specified instanceid does not exist.

Selenium 元素等待

這是乙個在寫自動化指令碼時經常遇到的問題。試想這樣的乙個場景,通過指令碼開啟乙個網頁,可是由於網路的問題頁面並沒有及時載入進來,這時候如果已經執行到之後查詢元素的 那麼勢必會丟擲錯誤找不到相應元素,而事實並非如此。如果沒有合適的元素等待處理,這樣的測試 不僅不夠健壯,過多的誤報會消耗測試人員大量的精...

Selenium元素等待

一 為什麼要使用元素等待?原因 由於電腦配置或者網路原因,在查詢元素時,元素 未在第一時間內被載入出來,而丟擲未能找到元素的異常。二 什麼是元素等待?元素在第一次未找到時,元素等待設定的時長被啟用,如果在設定的有效時長內找到元素,繼續執行 如果超出設定的時長未找到元素,丟擲未找到元素異常。三 元素等...

selenium 顯示等待

顯示等待的 定義了等待條件,只有該條件觸發,才執行後續 最垃圾的顯示等待就是使用 time.sleep 這種情況是指定了固定的等待時長。存在一些特別方便的方法,可以使你的 只等待需要的時常,而不是固定的時常。webdriverwait 和 expectedcondition 組合使用,就是一種有效的...