APP自動化測試之常見API 3 三種等待

2021-10-03 01:51:04 字數 1153 閱讀 3093

自動化測試之常見api3.三種等待

gui自動化測試**執行過程中,往往通過定位頁面元素屬性來操作元素,但往往由於網路和本身**等問題,導致要操作的元素可能沒等定位到就報錯找不見某屬性的元素,從而指令碼停止執行。通俗點講,就是**跑的太快,但頁面元素載入過慢而導致定位不到元素出錯的問題。如何解決呢?通常有如下三種解決方案。

2.1 強制等待

**執行到該行,整個指令碼直接強制停止往下執行,等待設定的對應時間後才繼續往下執行後面的指令碼。

from time import sleep    #要使用time模組的sleep方法必須先導包

print(「111」)

sleep(3)    #強制等待3秒在繼續往下執行

print(「222」)

2.2 隱式等待

針對頁面整個元素的載入,通俗講load頁面時,轉圈完了就可以繼續往下了,如果超過指定的時間就報錯。比如設定10秒,如果在指定的時間內提前載入完頁面並定位到了就直接往下,不需要等10秒結束後才繼續往下。

dr.implicitly_wait(10)#隱式等待

2.3顯示等待

針對頁面指定元素的載入,比如指定元素定位到了就直接往下,不用等整個頁面載入完畢才往下。比如下方**設定的檢查機制是:最長等待10秒,每隔0.5秒檢查一次,如果定位到的元素出現了,就直接往下,無序等待10秒結束才繼續往下。另外0.5秒的檢查頻率可以自主設定。

from selenium.webdriver.support.wait import webdriverwait

element = webdriverwait(dr,10,0.5).until(lambda dr: dr.find_element_by_id("barcode")) # 顯示等待

element.send_keys("123456")

注:三種等待至於具體使用哪種,沒有固定的場景,往往在設計測試指令碼時結合具體的產品業務環境,應靈活運用,往往是三者配合使用,別指望一種等待方式就把所有的測試場景問題就都解決了,即便是,也往往會存在**整體時間效率問題。

APP自動化測試之常見API 1 多種元素定位方式

自動化測試之常見api 1.多種元素定位方式 driver.find element by id 通過id定位,對應resource id driver.find element by name 通過name定位,對應text driver.find element by tag name 通過ta...

App自動化測試之unittest入門

import unittest class teststringmethods unittest.testcase def test upper self self.assertequal foo upper foo def test isupper self self.asserttrue foo...

API的自動化測試

傳統的測試工具在測試乙個api的時候,必須手動填寫這個api所需要接收的所有資訊,比如乙個查詢航班動態的api,他接收兩個輸入字段,乙個叫flight,乙個叫date,那麼測試這個api的使用者,需要手動填寫所有這些資訊 flight mu3532 date 2017 03 02。而在靈長科技的測試...