有什么方法可以从C#Selenium测试中删除Httponly Cookie?
-
04-10-2019 - |
题
我有一组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)写了一篇很好的博客文章 这里.
不隶属于 StackOverflow