Selenium有deleteallvisiblecookies构造,当测试在同一个域中运行时,它会删除所有cookie。
对于调用访问控制的产品,例如通常URL被访问管理器产品捕获,用户被重定向到不同的域进行登录,然后重定向回原始URL,登录成功,这似乎不起作用
根据Selenese文件:
要删除Cookie,您需要删除 它使用完全相同的路径和 用于创建的域 曲奇饼。如果路径错误,或者 域名是错误的,简单的cookie 不会被删除。
我似乎无法在这种多域环境中删除所有cookie。
我们使用Java和Selenium RC来运行这些测试 - 通常使用Firefox但有些IE。
有没有人有一些Java代码示例或我可以用来解决此问题的一些建议?
答案 0 :(得分:1)
我认为你不能。 Selenium RC的Java部分只是使用它生成的JavaScript来控制浏览器。一切都在浏览器中执行,因此适用通常的跨域规则。
我唯一能想到的是制作一些看起来像是来自访问管理器域的代理页面并让它删除“它的”cookie。 Selenium RC已经包含一个代理(它是如何工作的),也许有一种方法可以将一些虚假页面添加到代理域。
答案 1 :(得分:1)
我相信你可以查询Selenium RC以找出它正在运行的浏览器 - 如果你能这样做,你可以让你的测试到浏览器存储cookie的位置(假设你可以在运行时确定它) - 在Firefox配置文件的情况下 - 可能会查看创建日期?)并通过文件系统删除cookie。然后你没有Selenium参与,没有域名指定问题。