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 組合使用,就是一種有效的...