Получение списка файлов cookie, установленных с помощью WatiN - PullRequest
2 голосов
/ 26 мая 2011

Есть ли способ получить список всех файлов cookie, установленных веб-сайтом, использующим WatiN?

Класс IE Browser в WatiN предоставляет метод GetCookie, который позволяет вам получить определенный файл cookie, но я бы хотел перебрать все файлы cookie, которые были установлены.

Существует два способа получения cookie-файлов:

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

и

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

Но оба они пусты. Также вызов метода GetCookie для определенного файла cookie возвращает ноль.

Любые предложения о том, как заставить это работать?

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Недавно мне пришлось столкнуться с этой ситуацией. Сначала я подумал, что файлы cookie, которые я искал, были HttpOnly, но я посмотрел с помощью WireShark, а флаг HttpOnly отсутствовал.

Не уверен, почему в этом случае происходит сбой GetCookieContainerForUrl, но при вызове скрипта на стороне клиента выяснилось, что куки все еще там:

ie.Eval("document.cookie");

Возможно, вы захотите попробовать этот оператор, прежде чем прибегать к анализу пакетов каждый раз.

0 голосов
/ 26 мая 2011

Ну, я полагаю, что эти методы должны работать, как и ожидалось, но, возможно, вы пытаетесь получить HttpOnly куки? Многие сайты / веб-фреймворки устанавливают этот флаг для важных файлов cookie, особенно когда речь идет о файлах cookie с идентификатором сеанса. Вы не можете прочитать их в WatiN, и это действительно трудно читать их вообще. Я искал решение один раз, и единственное, что я получил, было статьей: Получить файл cookie сеанса HttpOnly в WebBrowser

Если вы хотите узнать, устанавливает ли на куки-файл сайт, который вы пытаетесь получить куки, HttpOnly, используйте Fiddler2 и посмотрите заголовки ответов.

...