我一直用python中的Selenium Webdriver 2.45编写自动化测试。要了解我需要测试的一些内容,我必须检索从站点生成的各种JSESSION
cookie。当我在Firefox或Chrome中使用webdrivers get_cookies()
功能时,所有需要的cookie都会返回给我。当我用IE11做同样的事情时,我看不到我需要的cookie。有谁知道如何从IE中检索会话cookie?
答案 0 :(得分:1)
您所描述的内容听起来像几个月前遇到的问题。我的测试在Chrome和Firefox上运行良好,但在IE中没有,问题是cookie。经过调查,我发现我的网站已将其会话cookie设置为HTTP-only。当cookie打开此标志时,浏览器将通过HTTP(S)协议发送cookie,并允许服务器在响应中设置它,但它将使JavaScript无法访问。 (与您的评论一致,您无法在document.cookie
中看到所需的Cookie。)当您将Selenium与Chrome或Firefox一起使用时,Selenium可以忽略此标记并从浏览器中获取Cookie无论如何。但是,IE无法做到这一点。
我在测试模式下运行我的网站时关闭了仅HTTP标志,解决了这个问题。我将Django用于我的服务器,因此我必须在其中创建一个包含test_settings.py
的特殊SESSION_COOKIE_HTTPONLY = False
文件。
答案 1 :(得分:0)
IE和Safari存在一个未解决的问题。这些驱动程序不会返回正确的cookie信息。至少不是域名。见this