Selenium – 存储会话数据

我在整个互联网上搜索,但我找到的答案都没有明确的解决方案。

我正在使用selenium webdriver和Java。

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

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

此解决方案适用于铬。

当您启动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驱动程序的新会话中。 如果您不希望它持续存在,您可以使用上面的命令清理cookie或只是简单注销。 这应该可以解决您的问题。 其他浏览器也应该有类似的东西。

要知道当前使用的配置文件,请在地址栏中输入chrome://version/ ,它包含当前使用的配置文件的信息。 要了解更多信息,请参阅此内容