1. 程式人生 > 其它 >【自動化測試不求人】selenium三種等待時間

【自動化測試不求人】selenium三種等待時間

  在實際的專案中,程式碼在執行定位頁面元素的過程中有些是需要等待時間的,但是如果在所有定位元素的操作之前都加上等待時間的話就比較麻煩,並且不易維護。

  此時可以考慮智慧等待,方法很簡單, 可以在程式碼前面加上全域性的智慧等待時間,比如“driver.implicitly_wait(10)”,這裡需要解釋一下智慧等待何為智慧,比如在程式碼中,設定時間為10秒,那麼如果元素定位花了2秒中,那麼這個頁面的等待時間就是2秒,而不是設定的10秒。如果10秒內還沒有定位到元素,就會報錯,元素定位失敗。示例程式碼如下所示。

  • 智慧等待implicitly_wait也叫隱式等待
#學習有疑問請聯絡作者
#作者qq:2574674466
#作者郵箱[email protected] from selenium import webdriver import time driver = webdriver.Chrome() driver.get('http://trains.ctrip.com/TrainBooking/SearchTrain.aspx') driver.implicitly_wait(10)
  • 強制等待,time.sleep如等待3秒:
#學習有疑問請聯絡作者
#作者qq:2574674466
#作者郵箱[email protected]
from selenium import webdriver
import
time driver = webdriver.Chrome() driver.get('http://trains.ctrip.com/TrainBooking/SearchTrain.aspx') time.sleep(3)
  • 顯式等待,使用方法:WebDriverWait(driver, 超時時間, 呼叫頻率, 要忽略的異常).until(要執行的方法, 超時時返回的錯誤資訊)
#學習有疑問請聯絡作者
#作者qq:2574674466
#作者郵箱[email protected]
from selenium import webdriver
import  time
from selenium.webdriver.common.by import
By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ex driver = webdriver.Chrome() driver.get("https://passport.meituan.com/account/unitivelogin?") print(driver.title) driver.maximize_window() s= WebDriverWait(driver,5).until(ex.title_is("登入 | 美團網"))

視訊、學習筆記聯絡qq:2574674466
更多內容請關注公眾號:“大牛測試

歡迎加入交流群:Selenium學習群: 628908894