使用Python的Selenium Webdriver,是否可以保存会话的浏览器历史记录并在将来的会话中重新加载历史记录?我知道 cookie 可以保存并重新加载,如果它们与当前域匹配,但我正在尝试使用不同类型的配置文件测试网站。谢谢。
对此你无能为力。首先,selenium webdriver API 为您提供了
forward()
和 back()
方法来导航历史记录(文档)。
DOM
window
对象可以帮助您,因为它提供对 history 对象的访问,但由于安全原因:您无法从当前页面的域之外推送历史记录项目。
另请参阅:
但是,如果您的所有 URL 都在同一域内,则可以使用
history.pushState()
方法,例如:
from selenium.webdriver.firefox import webdriver
WIKI_PAGE = 'How_I_Met_Your_Mother'
driver = webdriver.WebDriver()
driver.get('https://en.wikipedia.org/wiki')
script = 'history.pushState({}, "", "%s")' % WIKI_PAGE
driver.execute_script(script)
driver.get('https://en.wikipedia.org/wiki')
这里,在 Firefox 浏览器中打开维基百科主页,然后插入历史记录项,然后再次打开主页。如果您在浏览器窗口中单击
Back
,您将看到“我如何遇见你母亲”维基百科页面。
希望有帮助。