首页 > 解决方案 > 如何在 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 设置的值?

标签: javascriptpythonseleniumlocal-storage

解决方案


您正在使用一些 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

推荐阅读