我有一组C#Selenium测试,需要删除具有HTTPonly标志集的cookie。

不幸的是 DefaultSelenium.GetCookie()DefaultSelenium.DeleteCookie() 命令无法访问cookie,因为它具有httponly标志集。我已经通过手动删除标志来确认这一点,并检查了随后对任何一种方法的调用,然后很高兴能够操纵相关的cookie。

还有其他方法可以通过Selenium .NET客户端驱动器来执行此操作吗?

欢迎所有想法!

有帮助吗?

解决方案

由于我无法通过客户端驱动程序执行此操作,因此我必须找到一种替代方法。幸运的是,正在测试的Web应用程序具有一系列测试页面,可以与会话cookie进行交互(是我要访问的httponly cookie),因此我能够通过自动化这些页面来实现我的目标。

对于任何遇到这个问题的人,都有一个很好的 所以在这里回答 关于如何将httponly燃烧到asp.net中。

此外, 这个答案 指出如何通过应用程序的web.config操纵httponly,并有需要打开的警告,而不是关闭。

任何愿意更改其用于测试目的申请的人都应检查 这个解决方法, ,基本上更改global.asax中的session_start方法以剥离httponly标志,以便客户脚本可以访问。但是,这种解决方法只能在测试环境中使用,因为它打开了httponly被引入以关闭的安全孔 - 即XSS漏洞。杰夫·阿特伍德(Jeff Atwood)写了一篇很好的博客文章 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top