python - 如何设置 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 在运行异常并进入下一页之前查找元素的最长时间?
解决方案
您可以使用 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...")
推荐阅读
- sympy - Sympy:“传播”共轭成总和
- c - 调用 pthread_exit() 时内存泄漏
- c# - Azure:通过证书从云工作者连接到密钥保管库
- rest - 简单的 CRUD 端点 Vs。更复杂的端点
- c++ - 如何使用右侧或左侧图像推断(推断)视差图中像素的坐标?
- xamarin - 在 Xamarin 中使用 Moq 进行 NUnit 单元测试
- python - 类错误中的递归函数:python 2.7 中的“全局名称 'XXX' 未定义”但在 python 3 中有效
- php - DRUPAL 7:从 Ajax 调用触发下载请求
- mysql - 使此查询更快(按整数列排序)
- xamarin - 如何在滚动视图中延迟加载图像