【问题标题】:Selenium Webdriver getting a cookie valueSelenium Webdriver 获取 cookie 值
【发布时间】:2013-07-17 07:25:04
【问题描述】:

我正在尝试获取 cookie 值,但不断收到 <Selenium::WebDriver::Driver:0x13a0e0e8 browser=:firefox> 错误

我在打电话

@browser.cookie_named("configsession").each do |cookie|
  puts cookie[:name]

是不是我做错了什么?

【问题讨论】:

  • 给我们完整的错误堆栈和代码尽可能相关..
  • 在尝试从浏览器获取 cookie 之前,您是否导航到某个 URL?

标签: ruby automation webdriver cucumber selenium-webdriver


【解决方案1】:

使用 cookie 的方法在 Selenium::WebDriver::Options 中定义 - 请参阅 API docs

要访问这些cookie方法,您需要为驱动程序调用manage方法:

@browser.manage

要根据名称获取 cookie,您需要执行以下操作:

@browser.manage.cookie_named("configsession")

请注意,cookie_named 返回一个匹配的 cookie。 cookie 值是一个哈希值。因此,您可以通过以下方式获取 cookie 的值:

cookie = @browser.manage.cookie_named("configsession")
cookie[:name]
#=> "configsession"

如果要获取页面上所有cookie的名称,使用all_cookies方法:

driver.manage.all_cookies.each do |cookie|
    puts cookie[:name]
end

【讨论】:

    【解决方案2】:

    这对我有用:

    Cookie cookie= driver.manage().getCookieNamed("sitename.session");  
    String cookieVal= cookie.getValue();
    

    【讨论】:

    • 这是哪种编程语言?鉴于问题被标记为“ruby”,最好给出用 Ruby 编写的答案。
    • 你说得对,这不是 ruby​​ 而是 java。但是这个回复对我有帮助:)
    【解决方案3】:
        Set<Cookie> cook =  driver.manage().getCookies();
        for(Cookie cooks : cook) 
        {
    
        System.out.println(cooks.getName());
        }
    
        Cookie t = driver.manage().getCookieNamed("_gid");
        if(t!=null){
        String s1 = t.getValue();
        System.out.println("The Cookie value is : " + s1);
                   }
    

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 2012-06-24
      • 1970-01-01
      • 2012-11-04
      • 2016-06-28
      • 2015-05-06
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多