webdriver中的三大等待及視窗的切換

2022-05-23 17:36:09 字數 1316 閱讀 3022

一、傻等

適用於等待5s以內

time.sleep(seconds)

二、隱性等待   

implicitly_wait(30)  乙個會話只需要呼叫一次即可,設定等待上限,比如30s,如果你在30秒內元素出現了,就不等了,去執行下一行**,如果30秒還沒有出現,就報錯,超時

driver = webdriver.chrome()

driver.implicitly_wait(30)

driver.get("")

driver.find_element_by_id("kw").send_keys("")

driver.find_element_by_id("su").click()

三、顯性等待

from selenium import webdriver

from selenium.webdriver.support.wait import webdriverwait

from selenium.webdriver.support import expected_conditions as ec

from selenium.webdriver.common.by import by

driver = webdriver.chorme()

driver.get(

handles = driver.window_handles

loc = (by.xpath,'//div[@id="1"]//h3/a[contains(text(),"職業培訓")]')

# 顯性等待 等到這個元素出現

webdriverwait(driver,20).until(ec.visibility_of_element_located(loc))

# 進入官網,本操作帶來了新視窗的出現

driver.find_element(*loc).click()

# 確認新視窗出現了再去做其他操作

webdriverwait(driver,20).until(ec.new_window_is_opened(handles))

# 再次獲取視窗的數量

handles = driver.window_handles

print(handles) # 列印視窗資訊

# 切換到新視窗

driver.switch_to.window(handles[-1])

# 切回去的

driver.switch_to.window(wins[0]) # 回到主視窗。

Webdriver的三大等待

當瀏覽器在載入頁面時,網路不好 裝置的效能差導致與伺服器進行資料互動慢或者頁面渲染需要時間久等等,這些原因均會導致頁面的元素不是同時被載入完成的,所以元素定位可能會因為elementnotvisibleexception而定位不到,就會降低我們自動化測試指令碼的穩定性 故可通過設定元素等待來改善這種...

webdriver中的等待

webdriver中的等待 主要講解webdriverwait 強制等待 sleep import time sleep 5 等待5秒 設定固定休眠時間,單位為秒。由python的time包提供,匯入 time 包後就可以使用。缺點 不智慧型,使用太多的sleep會影響指令碼執行速度。隱式等待 im...

selenium 三大等待方式

一 強制等待 time.sleep 硬性等待,可以放在任意地方,等待時間為設定的時長,本質是暫停 執行,每需要用到一次,就要設定一次。二 隱性等待 implicitly wait 啟動瀏覽器後只需要設定一次,只能用於等待元素出現,等待的最長時間為設定的時長,一旦等待的元素出現,即停止等待。三 顯性等...