gpt4 book ai didi

java - 为什么 Firefox WebDriver 不会从以前的浏览器 session 中加载 Cookie?

转载 作者:行者123 更新时间:2023-12-03 20:39:48 27 4
gpt4 key购买 nike

我正在通过 Selenium 启动一个特定的 FF 配置文件,并且我试图保留 cookies从一个 session 到下一个 session (即,即使在调用 driver.quit() 后也应保留 cookie)
我知道,WebDriver通常会生成一个模仿原始配置文件的临时文件夹,因此当 WebDriver实例终止任何与当前(临时)实例关联的 cookie 都将被删除。但是,在我的程序中,我复制了 cookies.sqlite从临时文件夹到原始文件夹(覆盖cookies原始文件)。我原以为 FF 下次会使用上一届 session 的新 cookie 启动,但事实证明,出于某种奇怪的原因,cookie 仍然不存在。
我四处检查,似乎 cookie 实际上存储在 cookies.sqlite 中。 .
如果是这样,为什么 Firefox/WebDriver 不能识别我从上一个(临时) session 中复制的 cookie?我还需要复制其他文件吗?
我正在使用 Java。
谢谢

最佳答案

试试这个代码。

FirefoxOptions options = new FirefoxOptions();
options.addArguments("user-data-dir=C:.\cookies"); //or your absolute path
driver = new FirefoxDriver(options);
这将做的是,检查“cookies”文件夹或您在指定位置提供的任何名称。如果文件夹不存在,例如第一次执行程序时,Selenium 将自动在该位置创建文件夹,并将保存来自浏览器的 cookie 和信息。下次当您运行程序时,它将使用这些 cookie。这样,您的 cookie 将在几天后保留。
这是我的 Chrome 浏览器的 C# 代码,它运行良好。您将登录网站,下次运行该程序时,您无需再次登录,因为您的 cookie 已保存在文件夹中。
ChromeOptions options = new ChromeOptions();
options.AddArgument(@"user-data-dir=.\profiles");
ChromeDriver driver = new ChromeDriver(options);

关于java - 为什么 Firefox WebDriver 不会从以前的浏览器 session 中加载 Cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67527489/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com