Chrome 启动新会话后,浏览器中不保留Selenium Cookie

2nbm6dog  于 2023-05-11  发布在  Go
关注(0)|答案(2)|浏览(253)

应用程序在浏览器中执行特定操作后设置cookie。我试图退出浏览器并重新启动浏览器会话,但无法在浏览器窗口中再次找到特定的cookie。我正在使用Chrome浏览器。我已经尝试手动重新启动浏览器再次搜索cookie,并能够找到它
有人能在这方面提供帮助。不确定我的代码是否清除了Cookie
使用的代码

ChromeOptions chromeOptions = new ChromeOptions();
  chromeOptions.addArguments("ignore-certificate-errors");
  Object proxy = getCorrectProxy();
  chromeOptions.setCapability(CapabilityType.PROXY, proxy);
  chromeOptions.setCapability("acceptInsecureCerts", true);     
  chromeOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
  chromeOptions.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
  

  System.setProperty("webdriver.chrome.driver", GlobalSettings.CHROME_DRIVER_PATH);
  driver = new ChromeDriver(chromeOptions);

在没有Chrome选项的情况下尝试了下面的代码,但仍然看不到Cookie

System.setProperty("webdriver.chrome.driver", GlobalSettings.CHROME_DRIVER_PATH);
  driver = new ChromeDriver();
nuypyhwy

nuypyhwy1#

默认情况下,Selenium会在每次启动浏览器的新示例时创建一个新的浏览器会话。这意味着Cookie和其他浏览器数据不会在不同的Selenium示例之间共享。
但是,可以通过使用公共浏览器配置文件在不同浏览器示例之间共享Cookie。浏览器配置文件包含所有用户数据,包括Cookie、缓存、浏览历史记录和其他设置,并且可以在同一浏览器的示例之间共享。

vyswwuz2

vyswwuz22#

默认情况下,Selenium Webdriver以匿名模式启动chrome浏览器,并且不保留cookie。因此,当我们使用默认的Chrome配置文件时,永久性Cookie会被保留,代码如下所示。这已经过测试,工作正常
注意:仅为用于使用默认chrome配置文件的Chromeoption代码添加了代码。根据要求提供其他必要的Chrome选项

ChromeOptions chromeOptions = new ChromeOptions();
strUserProfile=System.getenv("USERPROFILE");
strUserProfile=strUserProfile+"\\AppData\\Local\\Google\\Chrome\\User Data";
chromeOptions.addArguments("user-data-dir="+strUserProfile);
driver = new ChromeDriver(chromeOptions);

相关问题