如何设置“尝试/除超时”以在Python Selenium中查找元素?

fil*_*tto 6 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...")
Run Code Online (Sandbox Code Playgroud)

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

sup*_*uri 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)

脚本:

try:
    xyz = WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,'div.xyz'))).text
except NoSuchElementException:
    print("\tError finding xyz...")
Run Code Online (Sandbox Code Playgroud)