【问题标题】:Selenium IDE, deleteAllVisibleCookies and ASP.NET_SessionId Cookie - Not WorkingSelenium IDE、deleteAllVisibleCookies 和 ASP.NET_SessionId Cookie - 不工作
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢您 - 这回答了我的问题,作为奖励,您链接中的信息为我提供了一些关于如何解决此问题的想法。
    猜你喜欢
    • 1970-01-01
    • 2015-02-13
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    相关资源
    最近更新 更多