我正在尝试绕过使用 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
我认为那样,只有当他找到元素并因此找到真实条件时,他才单击,否则程序继续
答案 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))