【问题标题】:how to handle driver to skip the current test and move to next test in current test class whenever it reaches on a dead end web page每当到达死胡同网页时,如何处理驱动程序以跳过当前测试并移至当前测试类中的下一个测试
【发布时间】:2016-03-07 14:18:04
【问题描述】:

问题描述:我有一个包含多个测试用例的测试类。在执行一项测试期间,出现“无法加载页面”错误,并且驱动程序超时,因为它在页面上找不到任何元素。虽然我可以通过放置 try catch 语句来处理这种特殊情况,但我需要一种方法来指示驱动程序,每当它到达任何此类页面时,它都会执行一组操作(重新访问站点,执行登录)并恢复测试从它被卡住的当前测试类中的下一个测试开始。

我将 Selenium 与 C# 和 Nunit 3.0 框架一起使用。

【问题讨论】:

    标签: c# selenium selenium-webdriver nunit-2.5 nunit-3.0


    【解决方案1】:

    您可以尝试使用EventFiringWebDriver 并利用WebDriverExceptionEventArgs 窃听异常,看看是否有帮助?可以参考单元测试EventFiringWebDriverTest学习使用方法。这样你的测试就不需要改变了。

    【讨论】:

    • 嗨 Krishnan,这个答案似乎可以解决我的问题,但即使经过长时间的探索,我也无法弄清楚如何实现它。
    • 它是为不同的目的而设计的 Krishnan。我认为应用全局异常处理程序将解决该问题。你对此有什么想法吗?
    • 它基本上是一种机制,让您有机会在事件发生时利用它们。异常的发生也是这样的事件之一。所以我相信它应该对你有所帮助。你试一试了吗?如果是,结果如何?你遇到了什么问题。也许你可以分享一下,这样你就可以得到进一步的帮助
    【解决方案2】:
    try
    {
       //your code
    }
    catch(TimeoutException ex)
    {
       //go to home url
    }
    

    【讨论】:

    • 感谢 Leon 的回复,但使用它我可以在测试用例级别处理它,但我想要一种机制在整个测试项目中编写一次这样的代码。我认为必须有一种方法可以在基类中定义它(主要创建和初始化驱动程序)。
    猜你喜欢
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多