Java Selenium—存储的会话数据

Java Selenium—存储的会话数据,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我在互联网上搜索过,但没有一个我找到的答案有明确的答案 我将SeleniumWebDriver与Java一起使用 我的测试需要验证您何时保存登录信息并关闭浏览器并重新打开,然后这些凭据将保留并保存在新会话中。因此,我想关闭当前会话并重新打开它,以验证页面上是否存在cookie,但Selenium会删除所有存储的会话数据,因此测试用例将始终失败。是否有任何方法可以防止Selenium在关闭特定测试用例的浏览器后删除存储的会话数据 当我运行它时,我得到了一个没有这样的会话错误。这个解决方案适用于ch

我在互联网上搜索过,但没有一个我找到的答案有明确的答案

我将SeleniumWebDriver与Java一起使用

我的测试需要验证您何时保存登录信息并关闭浏览器并重新打开,然后这些凭据将保留并保存在新会话中。因此,我想关闭当前会话并重新打开它,以验证页面上是否存在cookie,但Selenium会删除所有存储的会话数据,因此测试用例将始终失败。是否有任何方法可以防止Selenium在关闭特定测试用例的浏览器后删除存储的会话数据


当我运行它时,我得到了一个没有这样的会话错误。

这个解决方案适用于chrome

当您启动chrome时(我认为其他浏览器也适用),selenium会创建一个临时配置文件,当您关闭它时,它会将其删除。因此,重新启动浏览器时,新配置文件将不包含会话信息。你能做的就是使用配置文件

 DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
 ChromeOptions options = new ChromeOptions();

 options.addArguments("user-data-dir=C:\\Users\\"+System.getenv("USERNAME")+"\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1");
            desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
 driver = new ChromeDriver(desiredCapabilities);
这样,如果您创建了驱动程序,每次启动chrome时都会使用相同的配置文件,如果您不这样做,

driver.manage().deleteAllCookies();
您的会话信息将保留在chrome驱动程序的新会话中。如果你不希望它持续存在,你可以使用上面的命令清除cookies,或者只是简单的注销。这应该能解决你的问题。类似的事情在其他浏览器中也应该是可能的


要了解当前使用的配置文件,请键入
chrome://version/
在地址栏中,它包含当前使用的配置文件的信息。要了解更多信息,请参见

是否按照此处所述将Selenium Server与Selenium WebDriver一起使用?在这种情况下,请使用以下选项运行Selenium服务器:-browserSessionReuse:停止浏览器的重新初始化和生成:tests@W不幸的是,我没有。如何在测试代码中关闭会话?你能给我们一个代码片段吗?@Würgspaß我使用driver.close()。@Robben帮了忙吗?太好了。不客气!您必须通过参数
driver=new ChromeDriver(选项)传递选项