提问人:Milano 提问时间:8/3/2015 最后编辑:mtraceurMilano 更新时间:8/20/2023 访问量:2522
保存 Selenium 的当前状态
Save current state of Selenium
问:
是否可以保存Selenium浏览器的当前状态?
为了理解,我将举一个例子:
假设有一个网页。我点击了按钮,在那里我找到了许多其他按钮。我想按顺序检查每个按钮。问题是每个按钮都需要获取浏览器信息,例如引荐来源,这应该是第一次点击后的第一页等。
在这种情况下,我需要将这些信息保存在浏览器中,因为如果我单击第二个按钮,引荐来源将是最近打开的页面。在那之后,我无法立即点击第三个。我必须回去,但有些网页不允许浏览器“回去”。另一个优点是我不必向服务器发送新请求。
像这样的东西:
for but in driver.find_elements_by_class_name('button'):
state = driver.save_state()
but.click()
# do stuff
driver.load_state(state)
答:
-1赞
Tuanpm
3/13/2020
#1
还有另一种解决方案。Web 浏览器通常使用缓存来保存其状态。因此,您可以在单击每个按钮之前保存缓存,然后重复使用缓存以返回到单击之前的状态。 我已经在我的项目中使用了该解决方案。如果没有将任何内容保存到数据库或其他第三方中,它将完美运行。
评论
0赞
mtraceur
8/20/2023
示例代码或至少指向相关文档/API 的链接将是一个很好的答案。
评论
tmp = copy.deepcopy(driver)
but.click()
driver = tmp