我正在使用Python的Selenium模块编写机器人。当我用机器人打开一个网页时,由于该网页包含的外部资源比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等效代码。
我该如何实现我正在寻找的功能?