我无法使用watir-webdriver和browser.cookies.clear清除cookie 还有其他选择吗?
答案 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