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

Posted

技术标签:

【中文标题】通过 Selenium WebDriver C# 获取 HTTP 状态码【英文标题】:Getting HTTP Status Code by Selenium WebDriver C# 【发布时间】:2013-08-31 06:00:45 【问题描述】:

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

是否可以通过 WebDriver 获取 HTTP 状态代码,以便可以向用户提醒由于 HTTP 请求而失败的测试?

【问题讨论】:

在 Chrome 和 Firefox 驱动程序上,您可以为此 ***.com/questions/59519156/… 使用自定义扩展名 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

不是没有外部工具号。

你看,这在过去已经被多次提出,并且是 Selenium 的official issue tracker 中最大的“问题”之一。 particular issue 已被反弹并基本上确定它不在 Selenium 的范围内。

然而,这并不意味着它是不可能的。幸运的是,您使用的是 C#,所以它比您想象的要容易一些。

最近,Selenium 的一位开发人员写了一篇博客文章,概述了exactly how to do this in C#。这是一篇由三部分组成的博客文章,用于帮助解释每个步骤并使用一个名为 Fiddler 的外部工具(顺便说一句,这是一个很棒的工具)。

Fiddler 是一个代理,并且有一个 C# API 允许您拦截请求。因此,这意味着您可以简单地“指向” Selenium 以使用该代理,然后连接到 Fiddler 的 API 以准确检查请求的状态代码。

我只是链接到博客文章,而不是给你代码,因为在这些文章中已经非常详尽地解释了。

也许可以尝试一下,如果在实施他的设计时遇到任何问题,请再回来。顺便说一句,这个人也是 *** 的成员,所以也可以看到你的帖子。

【讨论】:

以上是关于通过 Selenium WebDriver C# 获取 HTTP 状态码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?

JavascriptExecutor(Selenium WebDriver C#)不断返回空对象

Selenium C# WebDriver:等到元素出现

c#爬虫-selenium检测webdriver封爬虫的解决方法

Selenium WebDriver - 如何使用 C# 设置页面加载超时

在 C# 中使用 Selenium WebDriver 执行 JavaScript