第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

有沒有辦法在 while 語句中實(shí)現(xiàn) selenium 等待?

有沒有辦法在 while 語句中實(shí)現(xiàn) selenium 等待?

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

4 回答

?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個贊

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


while True:

? ? try:

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

? ? ? ? #do stuff

? ? ? ? continue

? ? except:

? ? ? ? break

#do something else


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

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個贊

您可以嘗試text_to_be_present_in_element預(yù)期的條件并實(shí)現(xiàn)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))

一旦出現(xiàn)所需的文本,這將返回元素


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

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊

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


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

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


查看完整回答
反對 回復(fù) 2024-01-24
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

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

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

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


查看完整回答
反對 回復(fù) 2024-01-24
  • 4 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號