java - 从 selenium session 中获取 cookie

标签 java selenium selenium-webdriver webdriver

我想在登录后获取 session 变量和cookie。我已经使用selenium webdriver并成功登录。但是如何在selenium中登录后获取 session 和cookie。这是我的代码:

try {
            WebDriver driver = new FirefoxDriver();
            driver.get("https://pacer.login.uscourts.gov/csologin/login.jsf");
            System.out.println("the title is"+driver.getTitle());
            WebElement id= driver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/table[1]/tbody/tr/td[2]/input"));
            WebElement pass=driver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/table[2]/tbody/tr/td[2]/input"));
            WebElement button=driver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/div[2]/button[1]"));

            id.sendKeys("USERNAME");
            pass.sendKeys("PASSWORD");
            button.click();
        } catch (Exception e) {

            e.printStackTrace();
        }

请尽快提供您的建议。

谢谢

最佳答案

我通过添加以下代码运行了您的代码,并能够在我的控制台中获得以下值。

try {
        WebDriver driver = new FirefoxDriver();
        driver.get("https://pacer.login.uscourts.gov/csologin/login.jsf");
        System.out.println("the title is" + driver.getTitle());
        WebElement id = driver
                .findElement(By
                        .xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/table[1]/tbody/tr/td[2]/input"));
        WebElement pass = driver
                .findElement(By
                        .xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/table[2]/tbody/tr/td[2]/input"));
        WebElement button = driver
                .findElement(By
                        .xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/div[2]/button[1]"));

        id.sendKeys("USERNAME");
        pass.sendKeys("PASSWORD");
        button.click();

        Thread.sleep(10000);
        Set<Cookie> cookies = driver.manage().getCookies();
        System.out.println("Size: " + cookies.size());

        Iterator<Cookie> itr = cookies.iterator();
        while (itr.hasNext()) {
            Cookie cookie = itr.next();
            System.out.println(cookie.getName() + "\n" + cookie.getPath()
                    + "\n" + cookie.getDomain() + "\n" + cookie.getValue()
                    + "\n" + cookie.getExpiry());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

控制台

标题是PACER登录

尺寸:1

JSSessionID

/csologin/

pacer.login.uscourts.gov

E44C8************************400602

<小时/>

除了 Thread.sleep(10000),您还可以尝试使用显式等待。我相信网页花了一些时间来设置 cookie,因为它正忙于等待页面加载。

希望这对您有帮助。

关于java - 从 selenium session 中获取 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501492/

相关文章:

java - 设置网站轮询服务的最简单方法是什么?

java - 使用 JMAP 进行堆转储时出现异常

java - Selenium WebDriverException : unknown error: call function result missing 'value' using Java

java - 随机 "Element is no longer attached to the DOM"StaleElementReferenceException

javascript - 如何单击 Selenium Webdriver 中的所有元素?

java - Android onAnimationEnd 调用了两次

java - Blackberry Midlet 安装通知

java - 如何使用 TestNG 在 Selenium 中的 IReporter 界面中使用 screencapture?

selenium - 如何在chromedriver中关闭w3c以解决错误未知命令:在W3C中无法调用非W3C标准命令

c# - Selenium C# 中的显式等待不起作用。怎么了?