仅当元素出现时才单击它

时间:2021-04-02 21:52:44

标签: python if-statement selenium-chromedriver click

我正在尝试绕过使用 selenium 和 chromedriver 的程序中的问题。在实践中,程序崩溃的原因是,例如,10 次中有 3 次(我使用 cicle while)出现与通常不同的情况。所以我想采用以下解决方案,不幸的是它不起作用(所以我给了你这个想法):

if WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='example']"))) ==true :

    driver.find_element_by_xpath("//a[@class='example']").click()
else
     break

我认为那样,只有当他找到元素并因此找到真实条件时,他才单击,否则程序继续

1 个答案:

答案 0 :(得分:1)

我通常使用:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

在 try/except 语句中处理这个:

element_type_to_wait = By.XPATH
wait_until_element = "xpath_example"
time_out=30
element = WebDriverWait(my_web_driver, timeout=timeout).until(
                    EC.presence_of_element_located((element_type_to_wait, wait_until_element))