我遇到了这里描述的C#selenium绑定问题:Selenium Error - The HTTP request to the remote WebDriver timed out after 60 seconds
在运行我的selenium测试时偶尔会抛出超时异常。这些测试都是使用spec流程编写的,我希望有办法捕获该异常并让测试返回为该特定异常的Inconclusive(而不是失败)。
有没有人知道在try catch块中包装每个规范流场景的方法?这可能吗?或者一种自动捕获此异常的方法,而不必将每个单独的步骤定义包装在try catch块中?
谢谢!
答案 0 :(得分:9)
我找到了解决此问题的方法,我可以使用[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);
}
}
希望有人觉得这很有用!