首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Python中的selenium在本地存储中永久保存值

如何使用Python中的selenium在本地存储中永久保存值
EN

Stack Overflow用户
提问于 2020-07-22 05:03:26
回答 2查看 3.5K关注 0票数 0

我试图在本地存储中保存值,以便在关闭并重新使用selenium重新打开新会话后能够再次访问这些值。我可以从同一个会话保存和访问值,但是当我关闭浏览器然后尝试访问存储的变量时,它显示为null:

代码语言:javascript
运行
复制
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")
driver.execute_script("localStorage.setItem('testkey', 'myValue');")
driver.execute_script("alert (localStorage.getItem('testkey'));")

当我运行上面的命令时,警报会如期而至,但是当我关闭并重新打开浏览器并在注释掉setItem行后运行上面的代码时,警报显示为null。我如何才能做到这一点,或者是否有其他方法可以持久化从javascript设置的值?

EN

回答 2

Stack Overflow用户

发布于 2020-07-22 06:00:27

您正在使用一些javascript代码将值与驱动实例存储在一起。因此,一旦关闭/退出浏览器。会话被终止,这就是为什么相同的代码在这种情况下不能用于新的驱动实例。

使用Python中的环境在整个执行过程中存储和访问变量

代码语言:javascript
运行
复制
driver.execute_script("localStorage.setItem('testkey', 'myValue');")
driver.execute_script("alert (localStorage.getItem('testkey'));")

value = driver.switch_to.alert.text

# Set environment variables
os.environ['keyword'] = value

# get the environment variable
print(os.getenv('keyword'))

输入以下模块:

代码语言:javascript
运行
复制
import os
票数 1
EN

Stack Overflow用户

发布于 2020-07-23 08:02:33

哦,实际上,这太简单了,我终于明白了。

代码语言:javascript
运行
复制
from selenium import webdriver
import json

driver = webdriver.Chrome()
driver.get("https://www.google.com")
driver.execute_script("localStorage.setItem('testkey', 'myValue');")
myvariable = driver.execute_script("return localStorage.getItem('testkey');")

然后,在python中,您可以将值存储在您想要的任何地方,以便下次可以方便地检索。

代码语言:javascript
运行
复制
dicti = {'storage':myvariable}
json.dump(dicti, open("stored.json","w"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63027234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档