【问题标题】:Retrieving all cookies from IE using python使用python从IE中检索所有cookie
【发布时间】:2015-11-10 20:19:17
【问题描述】:

我一直在用 Python 中的 Selenium Webdriver 2.45 编写自动化测试。为了完成我需要测试的一些事情,我必须检索从站点生成的各种JSESSION cookie。当我在 Firefox 或 Chrome 中使用 webdrivers get_cookies() 函数时,所有需要的 cookie 都会返回给我。当我用 IE11 做同样的事情时,我看不到我需要的 cookie。有人知道我如何从 IE 中检索会话 cookie 吗?

【问题讨论】:

  • 你试过驱动的execute_script函数从JS获取cookie吗?喜欢 cookies=driver.execute_script("document.cookie")?
  • 是的,我试过了,它也不返回 JSESSION cookie

标签: python internet-explorer selenium webdriver


【解决方案1】:

你所描述的听起来像是我几个月前遇到的一个问题。我的测试在 Chrome 和 Firefox 上运行良好,但在 IE 中却不行,问题出在 cookie 上。经过调查,我发现我的网站已将其会话 cookie 设置为 HTTP-only。当 cookie 打开此标志时,浏览器将通过 HTTP(S) 协议发送 cookie,并允许服务器在响应中设置它,但它会使 JavaScript 无法访问 cookie。 (这与您在 document.cookie 中看不到所需 cookie 的评论一致。)碰巧当您将 Selenium 与 Chrome 或 Firefox 一起使用时,Selenium 能够忽略此标志并从浏览器获取 cookie。但是,它不能对 IE 做同样的事情。

我通过在测试模式下运行我的网站时关闭 HTTP-only 标志来解决此问题。我的服务器使用 Django,所以我必须创建一个特殊的 test_settings.py 文件,其中包含 SESSION_COOKIE_HTTPONLY = False

【讨论】:

    【解决方案2】:

    IE 和 Safari 存在一个未解决的问题。这些驱动程序不会返回正确的 cookie 信息。至少不是域。见this

    【讨论】:

      猜你喜欢
      • 2010-10-29
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多