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

2024-04-26 07:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将值保存在本地存储中,以便在关闭并重新打开与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行后运行上述代码时,警报显示为null。我如何才能让它工作,或者是否有其他方法可以持久化从javascript设置的值


Tags: fromimportexecutedriverseleniumscript浏览器警报
2条回答

哦,其实这很简单,我终于明白了

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中,您可以将值存储在任何您想要的位置,以便下次检索

dicti = {'storage':myvariable}
json.dump(dicti, open("stored.json","w"))

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

相关问题 更多 >