亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法在 while 語句中實現 selenium 等待?

有沒有辦法在 while 語句中實現 selenium 等待?

qq_笑_17 2024-01-24 20:37:44
我正在編寫一個不斷循環的腳本,當它檢測到頁面上的某個元素中有文本時需要停止。我在 selenium python 文檔中找不到任何關于執行此操作的幫助,但一定有辦法。如果您仍然不明白我需要做什么,這里有一些代碼:While #element is not visible:   #do stuff#when element is visible break out of statement and do something else編輯:我知道我正在尋找的元素的確切文本和確切的 xpath。然而,我只是在尋找一般性的答復,所以我不介意缺乏細節的答案。
查看完整描述

4 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

要繼續循環并在Selenium檢測到頁面上某個元素中有文本時停止,您可以使用以下定位器策略:


while True:

? ? try:

? ? ? ? WebDriverWait(driver, 5).until(EC.invisibility_of_element((By.XPATH, "element_xpath")))

? ? ? ? #do stuff

? ? ? ? continue

? ? except:

? ? ? ? break

#do something else


查看完整回答
反對 回復 2024-01-24
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您可以嘗試text_to_be_present_in_element預期的條件并實現ExplicitWait,如下所示:

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome()

driver.get(URL)


timeout = <SET MAXIMUM AMOUNT OF TIME IN SECONDS TO WAIT>?

your_text = '<REQUIRED TEXT>'


element = WebDriverWait(driver, timeout).until(EC.text_to_be_present_in_element((By.ID, "<ElementID>"), your_text))

一旦出現所需的文本,這將返回元素


查看完整回答
反對 回復 2024-01-24
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

下面的代碼將獲取所需的元素,然后循環直到它顯示(可見)。在循環結束時,您可能需要重新獲取元素(以防頁面更改),然后再檢查它是否顯示在循環頂部。


element = driver.find_element_by_XXX(locator)

while not element.is_displayed():

    #do stuff

    element = driver.find_element_by_XXX(locator)

#when element is visible break out of statement and do something else

我還要補充一點,您可能希望有一個循環轉義,以防元素永遠不可見。為此,您可以在進入循環之前獲取當前時間,然后檢查條件while以確保自開始時間以來時間不超過 30 秒。這樣你的腳本就不會陷入無限循環。


查看完整回答
反對 回復 2024-01-24
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

我正在 C# 中為 Selenium 進行編碼,但從未在 while 循環中實際使用過它,但我使用隱式等待來使我的測試等待,直到我正在尋找的元素可用。該函數很容易編寫,但我不確定這是否適合您。

_ = driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);

基本上,Selenium 會等待元素可用或總共 30 秒,如果元素不可用,則測試失敗。


查看完整回答
反對 回復 2024-01-24
  • 4 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號