需要 C# 打破 Selenium 第一次机会异常

Posted

技术标签:

【中文标题】需要 C# 打破 Selenium 第一次机会异常【英文标题】:Need C# to break on Selenium first chance exceptions 【发布时间】:2013-07-05 14:38:48 【问题描述】:

我正在通过 Visual Studio 调试 Selenium 测试套件。我希望抛出/捕获的异常能够中断,以便找出缺少的内容,但我是 C#/Visual Studio 的新手,不知道该选择什么。

一个示例异常块:

The thread '<No Name>' (0x75ac) has exited with code 0 (0x0).
A first chance exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in WebDriver.dll
A first chance exception of type 'OpenQA.Selenium.NoSuchElementException' occurred in Selenium.WebDriverBackedSelenium.dll
A first chance exception of type 'Selenium.SeleniumException' occurred in Selenium.WebDriverBackedSelenium.dll
The thread '<No Name>' (0x7250) has exited with code 0 (0x0).

我应该选择什么让它在那些第一次机会异常时停止,以便我可以修复代码?

谢谢!

【问题讨论】:

您是在 MsUnit 中使用 build 还是在 NUnit 之类的其他东西中使用? 我们使用 NUnit 和 .NET Selenium WebDriver 构建。 在这种情况下,您需要将 Visual Studio 调试器附加到 NUnit 进程。在 Visual Studio 菜单中,转到 Debug -> Attach to process... 并选择 nunit 【参考方案1】:

如果您选择 DEBUG -> Exceptions,将出现一个窗口,其中包含异常类型列表和 2 列,Thrown 和 User-unhandled。确保为公共语言运行时异常选择了“抛出”列(如果 Selenium 是 clr)。这将导致调试器因使用 try/catch 管理的异常而中断。

编辑

您可能还需要选择调试 -> 选项和设置,然后在调试 -> 常规中,取消选择“仅启用我的代码”。不过要小心,这将导致立即下载 .NET 框架源代码的符号,或者在您下次开始调试时下载。

【讨论】:

以上是关于需要 C# 打破 Selenium 第一次机会异常的主要内容,如果未能解决你的问题,请参考以下文章

无法在 C# 中捕获 0xC0000005 异常

第一次机会异常:RPC 服务器不可用

mscorlib.dll 中出现了“System.ArgumentOutOfRangeException”类型的第一次机会异常

System.Data.dll 中出现“System.InvalidOperationException”类型的第一次机会异常

C# Selenium:使用 wait.Until 时无法捕获异常

防止输出窗口中的第一次机会异常