【问题标题】:Unable to clear Browser cookies and Session Data with Selenium无法使用 Selenium 清除浏览器 cookie 和会话数据
【发布时间】:2015-05-23 10:23:44
【问题描述】:

我一直在使用 Java Selenium WebDriverAppium 在移动环境上执行测试,无论是 Emulator(Genymotion) 还是物理设备 (Android)。我正在使用chromedriver,用于在 Chrome 浏览器中对 Web 应用程序执行测试。我正在为多组数据循环我的案例,但应用程序需要一个完整的浏览器 Cookie,并且在每个循环开始之前要删除所有会话数据。 我尝试使用driver.Manage().Deleteallcookies(),但对我来说没有用。我读了一些线程来尝试在每个循环之前创建一个新的浏览器会话。所以我尝试了driver.quit(),但它结束了chromedriver 会话并结束了测试。我也尝试了driver.close(),但得到的结果与driver.quit() 相同。 谁能建议一种方法来删除chrome浏览器中的浏览器cookie和会话数据??

我的 Appium 版本:1.3.4.1 Chrome驱动版本:2.3 我正在尝试测试的设备/模拟器:Nexus5/Samsung Note 3 Android:4.4.4/5.0

【问题讨论】:

  • driver.Manage().Deleteallcookies() 应该这样做,当你说它不起作用时,你是什么意思?你能提供错误的任何堆栈跟踪吗?
  • 命令运行正常,没有错误,但是浏览器中的会话数据和本地存储数据没有被删除。它们被保留。但是当我手动清除所有浏览数据时,所有数据都会被删除。
  • 你说的是浏览器缓存吗?
  • 是的。我说的是浏览器缓存和 cookie 存储。
  • Deleteallcookies 不会清除浏览器缓存。

标签: java android session selenium-webdriver appium


【解决方案1】:

您可以尝试使用以下方法来确保会话清晰。请注意,我自己从未测试过。我的理解是 selenium 默认创建一个新会话,除非您指定不同的内容或加载配置文件。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
ChromeDriver driver = new ChromeDriver(capabilities);

【讨论】:

  • 我尝试了上面的代码,但这也给出了相同的结果。对于新流程,一切正常,但问题出在第二个流程中,会话数据破坏了功能。上面的代码没有删除会话数据。
  • @Vir 您是否正在使用相同的驱动程序实例运行第二个会话?
  • 是同一个实例
  • 恐怕@Vir 但是上面的代码将不起作用,因为您没有在第二次运行时执行它们,
  • 有没有其他出路
猜你喜欢
  • 2021-07-07
  • 2014-04-04
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
  • 2010-11-27
相关资源
最近更新 更多