Selenium IDE,deleteAllVisibleCookies和ASP.NET_SessionId Cookie - 不工作

时间:2011-10-05 16:21:27

标签: asp.net selenium selenium-ide

我正在使用Selenium IDE(FF 7.1上的1.3.0)来创建测试用例。测试用例的目的是登录到ASP.NET应用程序,清除会话cookie(模拟超时或类似的东西),然后导航到登录用户看到的默认页面,并验证它们是否已转发到登录页面。非常简单......但我只是潜入Selenium IDE,所以我想开始简单。

似乎deleteAllVisibleCookies是执行此操作的正确方法:

  

deleteAllVisibleCookies()   使用recurse = true调用deleteCookie   当前页面可见的所有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

在运行测试计划时,我正在查看通过FireCookie和Firebug设置的cookie。

一旦用户登录(在assertTextPresent部分),我会看到两个cookie - ASP.NET_SessionId和另一个cookie,这两个cookie都设置为相同的域(domain.local)和路径(/)

调用deleteAllVisibleCookies时,我看到第二个cookie被删除,但ASP.NET_SessionId没有被删除。

我尝试在pause 5000之后添加deleteAllVisibleCookies,因为文档中似乎有一些迹象表明通过Cookie递归的过程可能非常耗时,但这没有帮助。

我尝试使用deleteAllVisibleCookiesAndWait,但这只是超时而且失败 - 我不完全确定文档是否在那里做错了,或者即使这是正确的调用情况。

我在这里错过了什么吗?


修改:我只会将deleteCookie与recurse选项一起使用,但我需要使用此测试计划来处理各种基本网址,以便对域进行硬编码,就像我一样d需要使用deleteCookie不是一种选择。


编辑2 :我甚至无法通过为参数指定名称(ASP.NET_SessionId)和domain=domain.local,recurse=true,path=/来删除会话Cookie。

1 个答案:

答案 0 :(得分:4)

无法删除ASP.NET_SessionId cookie,因为它已标记为HttpOnly

  

设置Cookie:ASP.NET_SessionId = zecwj145rv2wkt45ekwangyq;路径= /;仅Http

根据this post,无论如何都不能删除或修改HTTP以外的cookie。还有isn't a way to turn off HttpOnly for this cookie