无法使用browser.cookies.clear清除cookie

时间:2013-12-12 16:01:53

标签: ruby cucumber watir watir-webdriver

我无法使用watir-webdriver和browser.cookies.clear清除cookie 还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

据我所知,由于担心安全性和隐私,我知道基于浏览器的限制。

Webdriver正在通过javascript与浏览器进行交互,并且不允许javascript清除所有cookie(想想可能在恶意网站上有多讨厌)。在非测试环境中,大多数正在执行的JS来自您正在访问的站点的服务器。因此,允许做的最多就是清除“当前域”的cookie,例如属于当前URL的cookie。因此,如果网页想要清除所有自己的cookie,那就没问题,但是不允许清除属于其他域的cookie。

因此,如果您希望所有测试都以新鲜的Cookie开头,那么您需要在env.rb的“之前”部分中找到有关网站根目录的内容,然后清除Cookie

BTW同样的限制适用于设置cookie,如果你想为特定网站创建cookie,你需要在尝试创建它之前导航到该网站,否则什么都不会创建。

答案 1 :(得分:0)

这不是答案,而是仅供参考。

假设chrome是选择的浏览器,当黄瓜运行时,从ps -ef | grep chrome的输出我们将能够找到自定义的用户数据目录,如下所示。

--user-data-dir=/tmp/.org.chromium.Chromium.G2DgPo

在该目录中,我们将能够找到存储在Cookies文件夹下的Default文件。

不确定直接删除该数据库文件是否可以满足需求。在正常的浏览器会话中,这样的运行时数据存储在

~/.config/google-chrome/Default/Cookies