我正在使用带有 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 无需等待页面加载即可进入页面 https://stackoverflow.com/questions/11455210/selenium-webdriver-go-to-page-without-waiting-for-page-load
但问题是上面链接中的答案没有提及任何有关Python等效代码的内容。
我如何实现我所寻找的未来?
python
当前问题中提到的问题的等效代码(Selenium WebDriver 无需等待页面加载即可进入页面 https://stackoverflow.com/questions/11455210/selenium-webdriver-go-to-page-without-waiting-for-page-load):
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('webdriver.load.strategy', 'unstable')
driver = webdriver.Firefox(profile)
and:
driver.set_page_load_timeout(5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)