一尘不染

selenium-存储的会话数据

selenium

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

我在Java中使用Selenium Webdriver。

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

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


阅读 440

收藏
2020-06-26

共1个答案

一尘不染

此解决方案适用于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/,请在地址栏中输入当前正在使用的配置文件的信息。要了解更多有关此的信息

2020-06-26