【问题标题】:Capture error message when selenium test fails硒测试失败时捕获错误消息
【发布时间】:2015-11-21 22:20:57
【问题描述】:

有办法在 Assert 失败、webdriver 找不到元素或类似原因时获取 Selelium 错误消息?我发现管理它的唯一解决方案是在我的所有测试方法中使用 try/catch,但我希望有更好的方法。

我尝试在测试通过成功或失败时保存日志消息,因此如果失败,我希望获取错误消息以将其保存在日志中。另外,我将 C# 与 Microsoft UnitTestFramework 和 Selenium WebDriver 一起使用。

谢谢!

【问题讨论】:

    标签: c# selenium logging selenium-webdriver error-handling


    【解决方案1】:

    可能它不是最好的解决方案......但是......

    1. 你可以在 selenium 周围使用 framework-wrapper,在所有需要的地方都会有 try/catch

    2. 您可以通过一次 try/catch 包装并检查 selenium 库引发的确切错误并记录它。 我的意思是你不需要捕捉(异常),你需要捕捉

     catch (Selenium.SeleniumException se)
        {
        /// your logging of se
        }
    

    【讨论】:

    • 你如何在 selenium 上放置一个“framework-wrapper”?
    • @JeffC 我的意思是你自己的一组包装硒对象的方法。例如,我构建了自己的框架包装器,现在搜索元素有另一种语法: browser.Page.Elem(By.Xpath(".//someXPath"), AwaitFor.Visible(1500)).AsInput().Text = “必须在此输入中的一些文本”; -- 在这个例子中,我隐藏了很多代码,还包括 try/catchs
    • 您能否详细说明如何为 TestSuite 实现这一点?
    【解决方案2】:

    如果要记录 Selenium 异常,则需要捕获它们。我建议你在你的测试调用周围加上一个 try/catch,如下所示。

    try
    {
        Test1();
    }
    

    在您的捕获中,您将捕获您想要记录的任何异常,然后将异常消息写入日志。如果需要,您可以通过谷歌 C# try/catch 获得一些关于如何最好地做到这一点的指示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多