有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Selenium存储的会话数据

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

我将selenium webdriver与Java结合使用

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

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


共 (1) 个答案

  1. # 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/,它包含当前使用的配置文件的信息。如需了解更多信息,请参阅this