我遇到了这里描述的 C# selenium 绑定(bind)的问题:Selenium Error - The HTTP request to the remote WebDriver timed out after 60 seconds
在运行我的 Selenium 测试时偶尔会抛出超时异常。测试都是使用规范流编写的,我很想有一种方法来捕获该异常,并使该特定异常的测试返回为不确定(而不是失败)。
有谁知道将每个规范流场景包装在 try catch 块中的方法?那有可能吗?或者一种无需将每个单独的步骤定义包装在 try catch 块中即可自动捕获此异常的方法?
谢谢!
最佳答案
我找到了解决此问题的方法,我可以在每个步骤后使用 [AfterStep] 绑定(bind)检查异常。这对我有用,失败的测试现在被标记为不确定:
[AfterStep]
public void check()
{
var exception = ScenarioContext.Current.TestError;
if (exception is WebDriverException
&& exception.Message.Contains("The HTTP request to the remote WebDriver server for URL "))
{
Assert.Inconclusive(exception.Message);
}
}
希望有人觉得这有帮助!
关于c# - 在 try-catch 中包装 specflow 场景,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26285798/