Selenium - 存储的会话数据

Selenium - Stored Session Data

我在整个互联网上进行了搜索,但是 none 我找到的答案有明确的解决方案。

我正在使用带有 Java 的 selenium webdriver。

我的测试需要验证您何时保存登录信息并关闭浏览器并重新打开它,然后这些凭据会保留并保存在新会话中。所以我想关闭当前会话并重新打开它以验证页面上是否存在 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 驱动程序的新会话中。如果您不希望它持续存在,您可以使用上述命令清除 cookie,或者只是简单地注销。这应该可以解决您的问题。类似的事情在其他浏览器中也应该是可能的。

要知道当前使用的是哪个配置文件,请在您的地址栏中键入 chrome://version/,它包含当前正在使用的配置文件的信息。要了解更多信息,请参阅 this