Webdriver Wire Protocol不包含删除所有域中所有Cookie的方法。 It can only delete cookies from current domain
我想删除所有域中的所有Cookie,因为AUT已与设置Cookie的第三方网站集成,我希望在每次测试开始时确保干净状态,以提高易维护性。
所以我开始考虑删除所有cookie的特定于驱动程序的方法。我特别感兴趣的是Firefox。
在Firefox中,可以通过以下任一方式完成:
我错过了什么吗?是否有一个跨驱动程序选项来删除所有cookie(来自所有域)?
答案 0 :(得分:-4)
有几种方法可以实现这一目标。这就是我通常在我的框架中实现这项工作的方式。
创建新的驱动程序对象(在本例中为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();
我希望这可以帮助您找到解决问题的方法。