当前位置: 首页 > 知识库问答 >
问题:

如何从TestNG IInvokedMethodListener获得测试字段?

商同
2023-03-14

我使用TestNG6.8+Selenium WebDriver2.32来测试web应用程序的GUI。在测试失败的情况下,我想拍摄应用程序GUI的截图。

我所拥有的:

    null
    null
import org.testng.annotations.Listeners;
...
@Listeners(GuiTestListener.class)
public abstract class AbstractGuiTest {
    protected WebDriver driver; //Used by all tests
    ...
}
public class GuiTestListener implements IInvokedMethodListener {
    @Override
    public void afterInvocation(IInvokedMethod method, ITestResult itr) {
        if (method.isTestMethod() && !itr.isSuccess()) {
            //Take a screenshot here. But how do I get at the intance of WebDriver declared in the AbstractGuiTest?
        }
    }
}

您能否建议一种方法,如何获得在AbstractGuitTest中声明的WebDriver实例,以便我可以使用它在GuiTestListener类中进行截图?

共有1个答案

夏青青
2023-03-14

您可以从iTestResult中获得它:

Object x = itr.getInstance();
AbstractGuiTest currentCase = (AbstractGuiTest)x;
WebDriver driver  = currentCase.getDriver();
 类似资料:
  • 我现在的Jenkins运行多个构建。每个构建/运行都将创建自己的testng-results.xml(target/surefire-reports/testng-results.xml) 我检查了Jenkins job主页上的HTML报告的结果(该报告只显示最新构建/运行的报告)。 不管怎样,为了得到这个?

  • 在执行测试之后,我将获得目录中的XML文件。在这里,我使用以下命令生成HTML报告: 在中,我有一个文件,它用于根据HTML报告的结果(例如:通过、中断、失败、...)对测试进行分类。我相信这种分类是由诱惑力完成的。 所以我想知道这种分类有什么诱惑力。

  • 如果我尝试实现一个自定义转换器(我在网上找到了一些例子),它会抱怨我没有实现抽象方法convert(F),而这些例子都没有实现。 谢了。

  • 谢谢你的关注,也很抱歉我的英语不好。 我正在从中获取htmlhttp://flvxz.com/当我在输入框中输入一些单词并单击时。就像: 加载雅虎主页 搜索"某物"(输入某物词并单击按钮) 获取返回html MyWebsit通过javaScrip返回消息 这是我的密码 那么,我怎样才能得到新的html呢?我尝试如下,不工作。 我的问题: 如何获取html 非常感谢你,我正在提高我的英语。。。

  • 我为我创建的驱动程序的测试创建了一个自定义标记。我正在寻找一种方法,使用新的Junit5 jupiter扩展在beforeach和AfterEach期间初始化和退出这个驱动程序。 我看到有一个AnnotationSupport.class应该可以帮助你获得用特定注释标注的字段,但是没有找到任何例子。 我想要的只是能够使用扩展中用我的注释标注的字段。

  • 如果你需要更多的背景,我在下面补充了整个故事: 我试图替换PDF中的一些字符串。这将成功(只要所有文本都存储在一个令牌中)。为了保持格式,我喜欢重新居中的文本。据我所知,我可以通过得到新旧字符串的宽度,做一些琐碎的计算,并设置新的位置来做到这一点。 我在stackoverflow上找到了一些灵感,用来替换https://stackoverflow.com/a/36404377(是的,它有一些问题,