簡體   English   中英

如何在一個帶有while function的循環內創建一個循環?

[英]How to make a loop inside a loop with a while function?

有時在搜索第二個按鈕時,網站無法正確加載,因此我想檢查第一個按鈕是否可用,這樣我就知道網站加載正確。 目前它只檢查一次第一個按鈕是否可用,如果為真則停止循環。 那么我該如何循環這段代碼,以便它每次都檢查第一個按鈕是否可用,即使在運行 else function 中的 while not 代碼之后也是如此。

firstbutton 和 secondbutton 之后的代碼不能相同,因此像 Prophet's answer 這樣的代碼不起作用。

while not (driver.find_elements(By.XPATH, "firstbutton")):
    driver.get('different url')
    driver.refresh()
else: 
    secondButton = driver.find_elements(By.XPATH, "secondbutton")
    while not (driver.find_elements(By.XPATH, "secondbutton")):
        time.sleep(1)
        driver.refresh()
secondbutton[0].click()
# wait while firstbutton is present
while not (driver.find_elements(By.XPATH, "firstbutton")):
    driver.get('different url')
    driver.refresh()

# firstbutton is found

secondButton = driver.find_elements(By.XPATH, "secondbutton")
# keep waiting and refreshing till we have both first and second button
while (not (driver.find_elements(By.XPATH, "secondbutton")) or
       not (driver.find_elements(By.XPATH, "firstbutton"))):         
    time.sleep(1)
    driver.refresh()
secondbutton[0].click()

應該適用於您的情況。

看起來您正在嘗試刷新頁面,直到 first_buttonsecond_button 都出現在那里?
如果是這樣,您只需要刷新,直到找到兩個元素。
像這樣的東西:

first_button = driver.find_elements(By.XPATH, "firstbutton")
second_button = driver.find_elements(By.XPATH, "secondbutton")
while not (first_button and second_button):
    first_button = driver.find_elements(By.XPATH, "firstbutton")
    second_button = driver.find_elements(By.XPATH, "secondbutton")
    time.sleep(1)
secondbutton[0].click()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM