获取使用WatiN设置的cookie列表

时间:2011-05-26 10:46:32

标签: cookies watin

有没有办法使用WatiN获取网站设置的所有Cookie的列表?

WatiN中的IE浏览器类提供了GetCookie方法,允许您检索特定的cookie,但我想迭代已设置的所有cookie。

有两种方法可以让你获得cookie:

CookieCollection cookies = _browser.GetCookiesForUrl(new Uri(url));

CookieContainer cookies = _browser.GetCookieContainerForUrl(new Uri(url));

但这两个都是空的。同时为特定cookie调用GetCookie方法将返回null。

有关如何使其发挥作用的任何建议吗?

2 个答案:

答案 0 :(得分:4)

最近我不得不处理这种情况。起初我认为我正在寻找的cookie是HttpOnly,但我看了一下使用WireShark并且没有HttpOnly标志。

在这种情况下,不确定为什么GetCookieContainerForUrl失败,但客户端脚本调用显示cookie仍然存在:

ie.Eval("document.cookie");

您可能希望在每次使用数据包嗅探之前尝试该语句。

答案 1 :(得分:0)

嗯,我想这些方法应该按预期工作,但是你可能想要获得HttpOnly个cookie?许多站点/ Web框架为重要的cookie设置了这个标志,特别是在涉及“会话ID”cookie时。你无法在WatiN中阅读它们,而且根本无法阅读它们。我一直在寻找解决方案,我得到的只有一篇文章:Retrieve HttpOnly Session Cookie in WebBrowser

如果您想知道您尝试获取Cookie的网站是否在Cookie上设置了HttpOnly标记,请使用Fiddler2并查看回复标题。