簡體   English   中英

如何循環代碼直到它在 Python 中工作?

[英]How to loop code until it works in Python?

我有一個很長的代碼,這里是它的一小段摘錄。 您經常需要查找元素、插入數據和單擊按鈕。 有時無法加載某些內容並彈出錯誤。 是否可以讓 Python 嘗試這些命令直到成功? 我不能用

time.sleep() 

延遲很長時間,因為它會大大增加執行時間,即使這樣也並不總是有幫助(

start = driver.find_element(By.CSS_SELECTOR, "SELECTOR")
start.click()
time.sleep(1)

start2 = driver.find_element(By.CSS_SELECTOR, "SELECTOR")
start2.click()
time.sleep(1)

如果您使用等待元素首先可點擊的方法,那么您可以設置默認超時,然后使用它,如下面使用WebDriverWait的部分代碼示例所示:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait


def wait_for_element_clickable(
    driver, selector, by="css selector", timeout=10
):
    try:
        return WebDriverWait(driver, timeout).until(
            EC.element_to_be_clickable((by, selector))
        )
    except Exception:
        raise Exception(
            "Element {%s} was not visible/clickable after %s seconds!"
            % (selector, timeout)
        )

# ...

element = wait_for_element_clickable(driver, "button#id")
element.click()

暫無
暫無

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

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