使用Selenium IDE清除会话cookie?

25

我正在为一个ASP应用程序编写Selenium测试,并希望测试当会话没有正确初始化时的情况。目前,我正在手动清除Cookies,但这变得有点麻烦。

(好吧,说实话,每五次左右我都会忘记它,必须重新运行测试...)

在Selenium IDE中是否有一种方法可以清除会话Cookies或模拟浏览器重新启动?

5个回答

29

我自己发现了,当我停止用“清除”这个概念时,改为使用“删除”:


deleteAllVisibleCookies 无法有效地清除会话 cookie,它只能清除当前可见域的 cookie。 - Kfir
有没有其他方法可以删除所有可见和不可见域的Cookie? - Chris
3
使用driver.manage().deleteAllCookies();语句可以删除所有的cookie,包括可见和不可见的。 - giri-sh
3
你能在集成开发环境中完成这个吗?我觉得不行。 - miky
不行,不适用于IDE。(Selenium IDE 3.17.2和Firefox 97.0) - Flo Bayer

14

我发现在所有的测试中,最实用的方法就是从我的注销页面开始,有意地使用户的任何会话过期。


1
看起来Selenium在Firefox中无法删除HttpOnly cookies...?http://code.google.com/p/selenium/issues/detail?id=615 - Cory Mawhorter
1
我无法让Selenium删除cookie,但可以通过我的注销页面来删除它们。 - Matthew Lock
我发现自己在最后又回到了同一个地方 :) +1 - hek2mgl

2
deleteAllVisibleCookies

并将站点网址放入目标中


2

使用以下命令之一:deletecookiesdeleteAllVisibleCookies。以下是示例,您可以从这里获取解决方案。

<tr>
<td>open</td>
<td>www.google.co.in</td>
<td></td>
</tr>
 <tr>
<td>deleteAllVisibleCookies</td>
 <td>PREF</td>
 <td>domain=.google.co.in, recurse=true</td>
  </tr>
  <tr>
<td>deleteAllVisibleCookies</td>
<td>NID</td>
  <td>domain=.google.co.in, recurse=true</td>
 </tr>

1
我在一个PHP项目中也遇到了同样的问题。 deleteAllVisibleCookies() 对我来说删除了太多内容。例如,如果应用程序创建了一个用于记住我的功能的cookie。
相反,我使用了$this->deleteCookie('PHPSESSID'); 来删除会话。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接