【发布时间】:2015-11-23 10:42:23
【问题描述】:
我正在使用带有 Selenium 模块的 Python 编写一个机器人。当我用我的机器人打开一个网页时,由于该网页包含的外部源比 dom 太多,因此加载所有页面需要很多时间。我使用显式和隐式等待来消除此问题,因为我只想加载特定元素而不是所有网页,它不起作用。问题是如果我运行以下语句:
driver = webdriver.Firefox()
driver.get('somewebpage')
elm = WebDriverWait(driver, 5).until(ExpectedConditions.presence_of_element_located((By.ID, 'someelementID'))
elm.click()
它不起作用,因为 Selenium 等待 driver.get() 完全检索网页,然后继续进行。现在我想写一个为driver.get()设置超时的代码,比如:
driver.get('somewebpage').timeout(5)
driver.get() 在 5 秒后停止加载页面并继续程序流程,无论 driver.get() 是否完全加载网页。
顺便说一下,我已经搜索了我上面说的功能,并且在那里遇到了:
Selenium WebDriver go to page without waiting for page load
但问题是,上面链接中的答案并没有说明 Python 等效代码。
我如何实现我正在寻找的未来?
【问题讨论】:
标签: python selenium dom webpage bots