首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python selenium -找不到元素时需要花费大量时间

python selenium -找不到元素时需要花费大量时间
EN

Stack Overflow用户
提问于 2017-08-10 01:20:19
回答 1查看 1.2K关注 0票数 4

我的代码使用chromedriver扫描了很多互联网页面,并使用"find_elements_by_xpath“在每个页面中搜索相同的元素。

代码语言:javascript
运行
复制
Lines = driver.find_elements_by_xpath(
                    '//*[@id="top"]/div[contains(@style, "display: block;")]/'
                    'div[contains(@style, "display: block;")]//tbody//a[contains(@title, "Line")]')

当它找到一个或多个时,它工作得又快又好。但是,当XPath不存在时,它会运行6-7秒,然后继续运行。

我可以将搜索限制为1秒,如果在1秒内找不到,就继续搜索吗?有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2017-08-10 01:28:38

尝试使用ExplicitWait,如下所示:

代码语言:javascript
运行
复制
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.common.exceptions import TimeoutException

try:
    Lines = wait(driver, 1).until(EC.presence_of_all_elements_located((By.XPATH, '//*[@id="top"]/div[contains(@style, "display: block;")]/'
                'div[contains(@style, "display: block;")]//tbody//a[contains(@title, "Line")]')))
except TimeoutException:
    pass

这应该允许您等待1秒,直到至少找到一个元素,然后获取所需的WebElements列表,否则什么也不做

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45596974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档