如果加载时间超出我的预期,我想刷新页面。因此,我计划使用现有功能set_page_load_timeout(time_to_wait),但事实证明,调用driver.get()似乎不再起作用。
我在下面编写了一个简单的程序,然后解决了问题。
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
import time
driver = webdriver.Chrome()
time.sleep(5)
driver.set_page_load_timeout(2)
try:
driver.get("https://aws.amazon.com/")
except TimeoutException as e:
print str(e)
driver.set_page_load_timeout(86400)
time.sleep(5)
print "open page"
driver.get("https://aws.amazon.com/")
print "page loaded"
环境信息:
chrome = 67.0.3396.99
chromedriver = 2.40.565386(45a059dc425e08165f9a10324bd1380cc13ca363),platform = Mac OS X 10.13.4 x86_64
硒版本:3.12.0
或参见: environment
答案 0 :(得分:0)
当get
/ navigation
超时,连接不稳定,因此您无法在浏览器上再次正常运行时,您会看到不幸的情况。
目前唯一的解决方法是禁用pageLoadStrategy
,但是随后您失去了很多好处,它们会自动等待get
和click
操作上的pageLoad
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
import time
from selenium.webdriver import DesiredCapabilities
cap = DesiredCapabilities.CHROME
cap["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(desired_capabilities=cap)