我试图在本地存储中保存值,以便在关闭并重新使用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设置的值?
发布于 2020-07-22 06:00:27
您正在使用一些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
发布于 2020-07-23 08:02:33
哦,实际上,这太简单了,我终于明白了。
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"))
https://stackoverflow.com/questions/63027234
复制相似问题