javascript - 如何在 Python 中使用 selenium 将值永久保存在本地存储中
问题描述
我正在尝试将值保存在本地存储中,以便在关闭并重新打开与 selenium 的新会话后能够再次访问它们。我能够保存和访问同一会话中的值,但是当我关闭浏览器然后尝试访问存储的变量时,它显示为 null:
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
行后运行上述代码时,警报显示为空。我怎样才能让它工作,或者有没有其他方法可以保留从 javascript 设置的值?
解决方案
您正在使用一些 javascript 代码将值与驱动程序实例一起存储。因此,一旦您关闭/退出浏览器。会话被终止,这就是为什么相同的代码在这种情况下无法使用新的驱动程序实例。
在 Python 中使用环境在整个执行过程中存储和访问变量
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'))
导入以下模块:
import os
推荐阅读
- python - 以 CSV 格式打印,就像我们以 txt 格式打印一样
- java - Notepad++ 中的多类
- java - 弹性搜索 6.2 替代以前版本的 size[0] 参数
- assembly - 这是汇编程序错误吗?绑定指令
- java - 使用 Spring Boot 进行 ANSI 日志记录
- mysql - 使用日期和时间检查 MySQL 查询历史记录
- acumatica - 为 Acumatica 网站安装 SSL 证书的文档参考
- rest - ResourceNotFound,未找到资源组“...”下的资源 Microsoft.DataFactory/factories/...
- vba - Excel - ActiveChart.SetSourceData 源:运行时错误“445”:对象不支持此操作
- azure - 删除/删除通过 powershell 旋转新 VM 时创建的所有资源