如何使用Selenium(Java)使用以前的cookie第二次启动firefox 在我的userstory中,我必须在firefox中验证,当我登录到特定站点时,会出现一些cookie 然后我需要关闭浏览器并再次打开它,然后打开提到的站点,并验证上一次会话中出现的cookie是否已保存且具有相同的值

如何使用Selenium(Java)使用以前的cookie第二次启动firefox 在我的userstory中,我必须在firefox中验证,当我登录到特定站点时,会出现一些cookie 然后我需要关闭浏览器并再次打开它,然后打开提到的站点,并验证上一次会话中出现的cookie是否已保存且具有相同的值,java,firefox,selenium,cookies,Java,Firefox,Selenium,Cookies,问题在于语句#2。我无法获取FirefoxDriver在第一个会话中创建的配置文件,以便在此基础上创建新的配置文件 我试过以下方法: 第一个浏览器是使用此构造函数启动的: public AchieveDriver(/*some parameters*/) { super(new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")), this.profile=new Firefox

问题在于语句#2。我无法获取FirefoxDriver在第一个会话中创建的配置文件,以便在此基础上创建新的配置文件

我试过以下方法:

第一个浏览器是使用此构造函数启动的:

public AchieveDriver(/*some parameters*/) {
    super(new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")), this.profile=new FirefoxProfile());
    /*some code*/
}
然后用这个创建第二个:

public AchieveDriver(/*some other parameters*/) throws Exception {
    super(new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")), new FirefoxProfile(profile.layoutOnDisk()));
    /*some code*/
}
但这并不奏效


从第一个配置文件中获取cookie是否有任何解决方案?(除了将它们保存为Cookie对象并添加到第二个配置文件之外?

我从未使用Selenium处理Cookie。但是如果我不得不大胆猜测的话,我会说你需要从你的第一个实例中获取所有的cookie,然后将它们添加回你的第二个实例中。找到了实现这一点的方法

使用:

获取所有Cookie,然后遍历它们并使用

otherdriver.manage().addCookie(aCookie);

或者,

我将把它放在另一个答案中,因为从技术上讲,这是一个不同的解决方案。虽然他们使用的是python

尽管他们没有找到确切的解决方案,但他们“发现我们需要将会话存储在某个地方,一旦关闭浏览器,我们就需要在打开新实例时传递现有会话。”


我不确定这是否会有任何帮助,但我认为它也值得加入

定义“未工作”第二个浏览器打开未继承上一个浏览器打开的任何Cookie。该配置文件似乎是空的,但我不认为它会解决这个问题,应该在这个用户故事中验证。我们必须验证关闭浏览器后是否保存了必要的cookies。但是如果我们从第一个实例中得到cookie,那就像硬代码一样,因为旧cookie将被100%地接受并添加到新实例中。您能解释一下原因吗?是因为你需要改变视力本身保持cookie状态吗?我已经编辑了前面的消息。我们需要在关闭浏览器后验证cookies是否保存更新的答案,如果新链接有帮助,请告诉我。它可能会做和我之前提到的完全相同的事情,但我想我会添加它,看看它是否更接近你想要的
otherdriver.manage().addCookie(aCookie);