【发布时间】:2011-10-05 16:21:27
【问题描述】:
我正在使用 Selenium IDE(FF 7.1 上的 1.3.0)来创建一个测试用例。测试用例的目标是登录到一个 ASP.NET 应用程序,清除会话 cookie(模拟超时或类似的东西),然后导航到登录用户看到的默认页面,并验证它们是否被转发到登录页面。非常简单......但我只是深入 Selenium IDE,所以我试图从简单开始。
看来deleteAllVisibleCookies 是正确的做法:
删除AllVisibleCookies ( ) 使用 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,它们都是为同一个域 (domain.local) 和路径 (/) 设置的。
当 deleteAllVisibleCookies 被调用时,我看到第二个 cookie 被删除了,但是 ASP.NET_SessionId 没有被删除。
我尝试在 deleteAllVisibleCookies 之后添加 pause 5000,因为文档中似乎有一些迹象表明,通过 cookie 进行递归的过程可能很耗时,但这并没有帮助。
我尝试使用 deleteAllVisibleCookiesAndWait 但这只是超时并且失败了 - 我不能完全从文档中确定我在那里做错了什么,或者即使这是在这种情况下使用的正确调用。
我错过了什么吗?
编辑:我只会使用带有递归选项的deleteCookie,但我需要这个测试计划来处理各种基本 URL,以便根据需要对域进行硬编码与deleteCookie 无关。
编辑 2:我什至无法通过为参数指定名称 (ASP.NET_SessionId) 和 domain=domain.local,recurse=true,path=/ 来删除会话 cookie。
【问题讨论】:
标签: asp.net selenium selenium-ide