Selenium C-Sharp 中的 catch 块未捕获异常,直接触发 ExceptionThrown 事件处理程序
Exceptions are not being caught by catch block in Selenium C-Sharp, directly triggers ExceptionThrown event handler
我有一个基于 selenium-C# 构建的测试自动化框架,其中我有一个 custom exception handler
来处理不同的异常,这个 exception handler
绑定到 selenium 侦听器并自动触发抛出任何异常。这里的问题是,在某些情况下,我只想捕获异常而不做任何事情,如下面的示例所示。
try
{
state = ((IJavaScriptExecutor)Driver).ExecuteScript(@"return document.readyState").ToString();
}
catch (InvalidOperationException)
{
//Ignore
}
但是 custom exception handler
甚至在控件进入 catch 块并且 custom exception handler
终止测试之前就被触发了。有没有一种方法可以让我先控制 catch 块,然后如果异常被抛出或未被处理,则只触发 custom exception handler
?
期待您的建议:)
您不能让 catch 子句在 EventFiringWebDriver 引发 ExceptionThrown 事件之前执行。但是,您可以在执行 try 块内的命令之前分离事件处理程序并在之后将其附加回去,或者以某种方式标记您的事件处理程序不执行它通常执行的操作。
我有一个基于 selenium-C# 构建的测试自动化框架,其中我有一个 custom exception handler
来处理不同的异常,这个 exception handler
绑定到 selenium 侦听器并自动触发抛出任何异常。这里的问题是,在某些情况下,我只想捕获异常而不做任何事情,如下面的示例所示。
try
{
state = ((IJavaScriptExecutor)Driver).ExecuteScript(@"return document.readyState").ToString();
}
catch (InvalidOperationException)
{
//Ignore
}
但是 custom exception handler
甚至在控件进入 catch 块并且 custom exception handler
终止测试之前就被触发了。有没有一种方法可以让我先控制 catch 块,然后如果异常被抛出或未被处理,则只触发 custom exception handler
?
期待您的建议:)
您不能让 catch 子句在 EventFiringWebDriver 引发 ExceptionThrown 事件之前执行。但是,您可以在执行 try 块内的命令之前分离事件处理程序并在之后将其附加回去,或者以某种方式标记您的事件处理程序不执行它通常执行的操作。