C# Selenium C-Sharp中的catch块未捕获异常,直接触发ExceptionThrown事件处理程序

C# Selenium C-Sharp中的catch块未捕获异常,直接触发ExceptionThrown事件处理程序,c#,selenium,selenium-webdriver,exception-handling,event-listener,C#,Selenium,Selenium Webdriver,Exception Handling,Event Listener,我有一个基于selenium-C的测试自动化框架,其中我有一个自定义异常处理程序来处理不同的异常,这个异常处理程序绑定到selenium侦听器,并在抛出任何异常时自动触发。这里的问题是,在某些情况下,我只想捕获异常,什么也不做,就像下面的示例中那样 try { state = ((IJavaScriptExecutor)Driver).ExecuteScript(@"return document.readyState").ToString(); } catch (InvalidOper

我有一个基于selenium-C的测试自动化框架,其中我有一个
自定义异常处理程序
来处理不同的异常,这个
异常处理程序
绑定到selenium侦听器,并在抛出任何异常时自动触发。这里的问题是,在某些情况下,我只想捕获异常,什么也不做,就像下面的示例中那样

try
{
    state = ((IJavaScriptExecutor)Driver).ExecuteScript(@"return document.readyState").ToString();
}
catch (InvalidOperationException)
{
    //Ignore
}
但是
自定义异常处理程序
甚至在控件到达catch块和
自定义异常处理程序
终止测试之前被触发。是否有一种方法可以让我的控件先捕获块,然后如果抛出或未处理异常,则只触发自定义异常处理程序


期待您的建议:)

您不能在EventFiringWebDriver引发ExceptionThrown事件之前执行catch子句。但是,您可以在try块内执行命令之前分离事件处理程序,然后将其重新连接,或者以某种方式将事件处理程序标记为不执行它通常执行的任何操作

在EventFiringWebDriver引发ExceptionThrown事件之前,不能执行catch子句。但是,您可以在try块内执行命令之前分离事件处理程序,然后将其重新连接,或者以某种方式将事件处理程序标记为不执行它通常执行的任何操作

我不确定我是否理解您所说的“自定义异常处理程序”是什么意思。您是指代码块中的catch块,还是指您处理EventFiringWebDriver.ExceptionThrown事件?如果自定义异常处理程序吃掉该异常,则此处理程序不会执行任何操作。请记住,异常会一直传播到handled@ArnonAxelrod我有一个类“CustomExceptionHandler”,它绑定到EventFiringWebDriver.ExceptionThrown事件。我不确定我是否理解“CustomExceptionHandler”是什么意思。您是指代码块中的catch块,还是指您处理EventFiringWebDriver.ExceptionThrown事件?如果自定义异常处理程序吃掉该异常,则此处理程序不会执行任何操作。请记住,异常会一直传播到handled@ArnonAxelrod我有一个类“CustomExceptionHandler”,它绑定到EventFiringWebDriver.ExceptionThrown事件。