firefox - 如何删除所有域中的所有 cookie?

标签 firefox selenium webdriver selenium-webdriver

Webdriver Wire Protocol 不包含从所有域中删除所有 cookie 的方法。 It can only delete cookies from current domain .

我想删除所有域中的所有 cookie,因为 AUT 与设置 cookie 的第三方网站集成,并且我想确保每次测试开始时的干净状态,以提高可维护性。

所以我开始考虑特定于驱动程序的方法来删除所有 cookie。我对 Firefox 特别感兴趣。

在 Firefox 中,可以通过以下任一方式完成:

  • Ctrl+Shift+Delete,然后按 Enter
  • 编写 Firefox 扩展,允许一步完成此操作

我错过了什么吗?是否有跨驱动程序选项可以删除所有 cookie(来自所有域)?

最佳答案

有多种方法可以实现此目的。这就是我通常在我的框架中实现工作的方式。

创建新的驱动程序对象(在本例中为 ChromerDriver)时,设置 ENSURING_CLEAN_SESSION 功能:

public WebDriver driver() {

    File driverServer = new File(WebDriverConfig.class.getClassLoader().getResource("webDrivers/chromedriver.exe").getFile());
    System.setProperty("webdriver.chrome.driver", driverServer.getAbsolutePath());
    DesiredCapabilities caps = DesiredCapabilities.chrome();
    caps.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
    return new ChromeDriver();

}

然后在使用 TestNG 框架的每个测试开始时:

@BeforeMethod(alwaysRun = true)
public void setup() {

    driver.manage().deleteAllCookies();
    // Do other stuff before each test executes

}

您还可以通过获取 Cookie 并找到所需的 Cookie,然后删除该 Cookie,仅删除特定的 Cookie。

driver.manage().getCookies();

我希望这可以帮助您找到问题的解决方案。

关于firefox - 如何删除所有域中的所有 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622266/

相关文章:

html - 在 Chrome 中使用百分比 (33.333%) 的网格设计

html - Chrome 和 Firefox 很快就会支持指针事件(压力、倾斜、触摸等)吗?

html - 背景 .png 未在 Chrome 和 Firefox 中显示

python - selenium.common.exceptions.InvalidSelectorException : Message: An invalid or illegal selector was specified

javascript - 为什么 selenium findElement(By.css ("span:contains(string)") 不工作?

css - 媒体查询彩色单色和打印

performance - 我想用 Watir 或 Selenium 计算页面加载时间

java - 如何解决 ElementNotInteractableException : Element is not visible in Selenium webdriver?

python - webdriver 在 python 中等待 ajax 请求

python - 使用 Python Selenium 时数据/内容丢失