我正在使用Selenium,C#,NUnit来编写自动化测试。
是否可以使用WebDriver获取HTTP状态代码,以便可以向用户发出因HTTP请求而失败的测试?
答案 0 :(得分:5)
不是没有外部工具编号
你知道,这在过去曾多次被提及,是Selenium official issue tracker中最大的“问题”之一。 particular issue已被反弹,并且基本上认为它超出了Selenium的范围。
然而,这并不意味着它是不可能的。值得庆幸的是,您正在使用C#,因此它比您想象的要容易一些。
最近,一位Selenium开发人员写了一篇概述exactly how to do this in C#的博客文章。这是一篇由三部分组成的博客文章,帮助解释每个步骤,并使用一个名为Fiddler的外部工具(顺便说一下,这是一个很棒的工具)。
Fiddler是一个代理,有一个C#API,允许您拦截请求。因此,它意味着您可以简单地“指出”Selenium使用该代理,然后挂钩到Fiddler的API以准确检查请求的状态代码。
我只是链接到博客帖子,而不是给你代码,因为在这些帖子中对它进行了彻底的解释。
也许尝试一下,如果你在实现他的设计时遇到任何问题,那就回来吧。顺便提一下,这个人也是StackOverflow的成员,所以也可以看到你的帖子。
答案 1 :(得分:0)
它并不理想,但我将页面文本与后续正则表达式进行比较,因为在我的设置中,文本会伴随网页错误:
(?:(access is denied)|(access is forbidden)|(server error)|(not found))