普通浏览器与Selenium浏览器的LocalStorage是否独立?数据消失是否正常?
问题解答
嘿,这个问题问得很到位!我来给你拆解清楚:
1. 普通Chrome和Selenium驱动的Chrome,LocalStorage是完全隔离的
没错,它们俩用的是完全独立的存储环境。原因很简单:Selenium默认会启动Chrome的一个「临时用户配置文件」——相当于给你开了一个全新的、和日常使用的账号完全无关的浏览器环境。这个临时环境里的LocalStorage、Cookie、书签等所有数据,都和你平时用的普通Chrome账号不互通,就像你用Chrome的「访客模式」或者另一个用户账号一样,彼此的数据是完全分开的。
2. 关闭Selenium Chrome后LocalStorage消失,是预期行为
这太正常了!因为默认情况下,Selenium启动的临时用户配置文件是存放在系统的临时目录里的。当你关闭Selenium驱动的浏览器(也就是结束会话),这个临时目录会被自动清理掉,里面存的LocalStorage自然也就跟着消失了。
3. 怎么让Selenium的LocalStorage数据持久化/和普通浏览器共享?
如果你想让Selenium里设置的LocalStorage能保留下来,或者和普通Chrome互通,只需要在启动Selenium的时候,指定使用你日常用的Chrome用户配置目录就行。举个Python的例子:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 创建Chrome配置对象 chrome_options = Options() # 替换成你自己的Chrome用户数据路径 # Windows示例路径:C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data # Mac示例路径:~/Library/Application Support/Google/Chrome/Default # Linux示例路径:~/.config/google-chrome/default chrome_options.add_argument("user-data-dir=你的Chrome用户数据路径") # 注意:启动前请关闭正在运行的普通Chrome,否则会出现冲突 driver = webdriver.Chrome(options=chrome_options)
这样启动的Selenium Chrome就会复用你日常的用户配置,LocalStorage的数据会和普通Chrome共享,而且关闭浏览器后数据也不会丢失,因为它们存在你真实的用户数据目录里了。
内容的提问来源于stack exchange,提问作者Lukas S
相关产品推荐
相关产品推荐

