首页 > 解决方案 > 如何设置 Try/Except 超时以在 Python Selenium 中查找元素?

问题描述

我正在使用 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 在运行异常并进入下一页之前查找元素的最长时间?

标签: pythonselenium

解决方案


您可以使用 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...")

推荐阅读