通过Selenium WebDriver C#获取HTTP状态代码

我正在使用Selenium,C#,NUnit来编写自动化测试。

是否可以使用WebDriver获取HTTP状态代码,以便可以向用户发出因HTTP请求而失败的测试?

不是没有外部工具没有。

你知道,这在过去已被提出过很多次,也是Selenium 官方问题跟踪器中最大的“问题”之一。 特定的问题已经被反弹并且基本上决定它超出了Selenium的范围。

然而,这并不意味着它是不可能的。 值得庆幸的是,您正在使用C#,因此它比您想象的要容易一些。

最近,其中一位Selenium开发人员写了一篇博客文章,概述了如何在C#中做到这一点 。 这是一篇由三部分组成的博客文章,帮助解释每个步骤,并使用一个名为Fiddler的外部工具(顺便说一下,这是一个很棒的工具)。

Fiddler是一个代理,并有一个C#API,允许您拦截请求。 因此,它意味着您可以简单地“指出”Selenium使用该代理,然后挂钩到Fiddler的API以确切地检查请求具有什么状态代码。

我只是链接到博客文章,而不是给你代码,因为它在这些post中得到了彻底的解释。

也许尝试一下,然后如果你在实现他的设计时遇到任何问题就回来。 顺便说一句,这个人也是StackOverflow的成员,所以也可以看到你的post。

这不是理想的,但我将页面文本与后续正则表达式进行比较,因为在我的设置中,文本伴随着网页错误:

(?:(access is denied)|(access is forbidden)|(server error)|(not found))