Selenium WebDriver manager().getCookies()总是返回0

Ser*_*kyi 15 java cookies selenium selenium-webdriver

硒的webdriver manager().getCookies()InternetExplorerDriver 总是返回0元!PS版本2.32.0.0

Eit*_*eer 11

如果cookie是HTTPOnly,则无法从Javascript/Selenium中读取它们


Elh*_*zer 5

我不明白为什么driver.manage().getCookies();在 FF 和 IE 中总是以 0 大小返回。

但我找到了这个解决方法,使用executeScript

Set<Cookie> cookies = driver.manage().getCookies();

if (cookies.size() == 0) { // To support FF and IE
    String cookiesString = (String) driver.executeScript("return document.cookie");
    cookies = parseBrowserCookies(cookiesString);
}




private Set<Cookie> parseBrowserCookies(String cookiesString) {
    Set<Cookie> cookies = new HashSet<>();

    if (StringUtils.isBlank(cookiesString)) {
        return cookies;
    }

    Arrays.asList(cookiesString.split("; ")).forEach(cookie -> {
        String[] splitCookie = cookie.split("=", 2);
        cookies.add(new Cookie(splitCookie[0], splitCookie[1], "/"));
    });

    return cookies;
}
Run Code Online (Sandbox Code Playgroud)


Ame*_*mey -3

这是您可以获取所有 cookie 的方法

allCookies = driver.manage().getCookies();
Run Code Online (Sandbox Code Playgroud)

  • 我知道。问题出在IE或驱动程序中,我根本无法获取cookie!Cookie 存在,但驱动程序返回 0... (3认同)