创建新的WebDriver会话重用我的cookie

时间:2015-08-04 17:51:31

标签: webdriver microsoft-edge

当我在Edge中开始新的WebDriver会话并浏览到我之前登录的网站时(使用"记住我" Cookie保留在Edge中),WebDriver会话将重新使用我的cookie并显示为已登录。

是否可以在Edge下以InPrivate模式启动WebDriver会话?

2 个答案:

答案 0 :(得分:2)

我自己今天遇到这个问题,所以我让它工作的唯一方法最终很简单。您必须在边缘设置中选中“在关闭浏览器时始终清除此项”(并选择要清除的内容)。

使用该设置,您将在每次新的驱动程序初始化时使用干净的会话:)

enter image description here

答案 1 :(得分:1)

我不熟悉在InPrivate模式下启动Edge会话的方法,但作为替代方法,您可以在每次测试的@Before步骤中清除Cookie。

例如:

@Test
public void deleteAllCookiesExample() {
    driver = new ChromeDriver(); //initialize with Edge here
    String url ="http://www.example.com";
    driver.navigate().to(url);
    driver.manage().deleteAllCookies();
}

或删除具有特定名称的Cookie:

@Test
public void deleteCookieNamedExample() {
    driver = new ChromeDriver(); //initialize with Edge here
    String URL="http://www.example.com";
    driver.navigate().to(URL);
    driver.manage().deleteCookieNamed("__utmb"); //example cookie name
}

P.S。在以前的IE版本中有一个bug,在您访问该页面之前无法访问cookie。所以考虑在那之后重新加载页面或尝试类似的东西(它在IE11中工作):

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
WebDriver driver = new InternetExplorerDriver(caps);