【问题标题】:How to delete multi-domain cookies programmatically using Selenium RC / Java如何使用 Selenium RC / Java 以编程方式删除多域 cookie
【发布时间】:2026-02-07 18:40:01
【问题描述】:

Selenium 具有 deleteallvisiblecookies 构造,当测试在同一域中运行时,它会删除所有 cookie。

对于调用访问控制的产品,例如通常 URL 被访问管理器产品捕获,并且用户被重定向到不同的域以登录,然后重定向回原始 URL,如果登录成功,这似乎不起作用

根据 Selenese 文档:

要删除 cookie,您需要删除 它使用完全相同的路径和 用于创建的域 曲奇饼。如果路径错误,或者 域是错误的,cookie 只是 不会被删除。

在这种多域环境中,我似乎无法删除所有 cookie。

我们使用 Java 和 Selenium RC 运行这些测试 - 通常使用 Firefox,但也使用一些 IE。

有没有人得到一些我可以用来解决这个问题的 Java 代码示例或一些建议?

【问题讨论】:

    标签: java cookies selenium-rc


    【解决方案1】:

    我不认为你可以。 Selenium RC 的 Java 部分只是使用它生成的 JavaScript 来控制浏览器。一切都在浏览器中执行,因此适用通常的跨域规则。

    我唯一能想到的就是制作一些看起来像是来自访问管理器域的代理页面,并让那个页面删除“它的”cookie。 Selenium RC 已经包含一个代理(这就是它的工作方式),也许有一种方法可以将一些虚假页面添加到代理域。

    【讨论】:

      【解决方案2】:

      我相信您可以查询 Selenium RC 以找出它在哪个浏览器中运行 - 如果您能做到这一点,您可以让您的测试转到浏览器存储 cookie 的位置(假设您可以在运行时确定它- 时间在 Firefox 配置文件的情况下 - 也许看看创建日期?)并通过文件系统删除 cookie。那么你就没有 Selenium 的参与,也没有域指定的问题。

      【讨论】: