Selenium IDE, deleteAllVisibleCookies и файл cookie ASP.NET_SessionId - не работает - PullRequest
2 голосов
/ 05 октября 2011

Я использую Selenium IDE (1.3.0 на FF 7.1) для создания тестового примера.Цель тестового примера - войти в приложение ASP.NET, очистить куки-файл сеанса (для имитации тайм-аута или чего-то подобного), а затем перейти на страницу по умолчанию, которую видит вошедший в систему пользователь, и убедиться, что они перенаправлены.на страницу входа.Довольно просто ... но я просто погружаюсь в Selenium IDE, поэтому пытаюсь начать с простого.

Кажется, deleteAllVisibleCookies - правильный способ сделать это:

deleteAllVisibleCookies () Вызывает deleteCookie с recurse = true для всех файлов cookie, видимых на текущей странице.Как отмечено в документации для deleteCookie, recurse = true может быть намного медленнее, чем простое удаление файлов cookie с использованием известного домена / пути.

Соответствующая часть моего плана Selenium IDE выглядит примерно так:

assertTitle                 Project List
assertTextPresent           Start a New Project
deleteAllVisibleCookies
open                        /path/to/intro/page.aspx
assertTitle                 Log In

Во время выполнения плана тестирования я смотрю на файлы cookie, установленные через FireCookie и Firebug.

Как только пользователь вошел в систему (в части assertTextPresent), я вижу двафайлы cookie - ASP.NET_SessionId и другой файл cookie, которые установлены для одного домена (domain.local) и пути (/).

Когда вызывается deleteAllVisibleCookies, я вижу, что второй файл cookie удаляется,но ASP.NET_SessionId не удаляется.

Я пытался добавить pause 5000 после deleteAllVisibleCookies, поскольку в документации есть некоторые признаки того, что процесс повторного использования файлов cookie может занимать много времени., но это не помогло.

Я пытался использовать deleteAllVisibleCookiesAndWait, но это просто время ожидания и не удается - я не совсем уверен из документации, если я делаю что-то не так, илидаже если это правильный вызов для использования в этой ситуации.

Я что-то здесь упускаю?


Редактировать : я бы просто использовал deleteCookieс опцией recurse, но мне нужен этот план тестирования для работы с множеством базовых URL-адресов, поэтому жесткое кодирование домена, как мне нужно было бы сделать с deleteCookie, не является опцией.


Редактировать 2 : Я даже не могу удалить куки сессии, указав имя (ASP.NET_SessionId) и domain=domain.local,recurse=true,path=/ для аргументов.

1 Ответ

4 голосов
/ 25 октября 2011

Невозможно удалить файл cookie ASP.NET_SessionId, поскольку он помечен HttpOnly .

Set-Cookie: ASP.NET_SessionId = zecwj145rv2wkt45ekwangyq;Путь = /;HttpOnly

Согласно этому посту нет никакого способа удалить или изменить cookie, кроме HTTP.Также не позволяет отключить HttpOnly для этого файла cookie .

...