我正在使用Python Selenium来爬网多个网页,并且我以前知道某些页面没有所有元素。

我已经在等待页面加载并使用try/except查找元素(例如,类xyz),并且需要30秒才能进入异常。

try:
    xyz = driver.find_element_by_css_selector('div.xyz').text
except NoSuchElementException:
    print("\tError finding xyz...")

如何设置较小的超时(例如5秒)作为Selenium在运行异常并移至下一页之前查找元素的最大时间?

最佳答案

您可以使用WebDriverWait和ExceptionCondition实现此目的。

您需要在进口以下。

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

脚本:
try:
    xyz = WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,'div.xyz'))).text
except NoSuchElementException:
    print("\tError finding xyz...")

关于python - 如何设置Try/Except超时以在Python Selenium中查找元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57710868/

10-11 22:42
查看更多