我遇到了这里描述的 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/

10-17 00:44