在try-catch中包装specflow场景

GKS*_*KS1 4 c# selenium specflow

我遇到了这里描述的C#selenium绑定问题:Selenium Error - 对远程WebDriver的HTTP请求在60秒后超时

运行我的selenium测试时偶尔会抛出超时异常的地方.这些测试都是使用spec flow编写的,我希望有办法捕获该异常并让测试返回为该特定异常的Inconclusive(而不是失败).

有没有人知道在try catch块中包装每个规范流场景的方法?这可能吗?或者一种自动捕获此异常而无需在try catch块中包装每个单独的步骤定义的方法?

谢谢!

GKS*_*KS1 10

我找到了解决此问题的方法,我可以使用[AfterStep]绑定在每个步骤后检查异常.这对我有用,失败的测试现在标记为不确定:

[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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

希望有人发现这有用!