Selenium - 在计算机之间共享浏览器会话(cookie,本地存储)

时间:2017-02-24 07:10:36

标签: python google-chrome selenium cookies selenium-chromedriver

我需要在两台计算机之间转移我的Selenium会话。

要通过Selenium导出和导入cookie,您必须先单独访问每个网站,然后才能设置其Cookie,我想避免这种情况。我还想复制本地存储。

这是我迄今为止所做的尝试:

1 - 启动新的Selenium会议:

driver = webdriver.Chrome()

2 - 在%temp%中找到其临时Chrome用户个人资料,并将其复制到我的应用程序文件夹

3 - 使用此用户配置文件启动新驱动程序:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir=C:\\profiles\\temp_profile")
driver = webdriver.Chrome(chrome_options=chrome_options)

上述工作 - 本地存储和cookie仍在我的本地PC上,但是,当我将此用户配置文件复制到另一台PC并启动它时,本地存储仍然存在,但cookie已经消失。

我也尝试使用常规的Chrome配置文件,以及尝试直接在Chrome中启动用户配置文件而不是Selenium,但Cookie仍然没有用。

2 个答案:

答案 0 :(得分:3)

由于Cookie存储在Chrome的SQLite文件中,并且已经加密,因此您并不真正了解(或想要深入了解...)为什么它不起作用。它可能与信息安全有关。

所以我的建议是使用WebDriver的功能保存它们并将它们加载到内存中。 See here

答案 1 :(得分:0)

自从它出现在我的Google搜索中以来,我正在对此做出回应。

也许它与Chrome加密cookie的方式有关,所以您需要在两台计算机上使用相同的证书才能使复制粘贴起作用。

看看:https://github.com/bertrandom/chrome-cookies-secure

使用此方法,您仍然需要知道域名,但实际上并不需要访问该网站。