[英]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_button和second_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.