引起原因:java.lang.InstantiationException:TestNGFrameWorkBetaVersionPackage.TestNGFrameWorkBetaVersionClass

时间:2019-02-14 10:27:40

标签: selenium testng

可能是什么原因

  

java.lang.InstantiationException:   TestNGFrameWorkBetaVersionPackage.TestNGFrameWorkBetaVersionClass

此TestNG是否存在错误?寻求您的支持。 enter image description here

1 个答案:

答案 0 :(得分:0)

问题出在您的测试代码上。

您基本上已经向侦听器添加了一个非默认的构造函数。从屏幕快照中,您不清楚如何连接侦听器(stacktrace指示已通过testng xml文件或通过服务加载程序机制连接了此侦听器)

侦听器对象由TestNG通过反射自动实例化。在这种情况下,TestNG会寻找默认构造函数以使其能够实例化侦听器。

要解决此问题,请将默认构造函数也添加到您的侦听器类中。

如果要捕获失败时的屏幕快照,请执行以下操作:

  1. 通过调用ITestResult来掌握当前测试方法的Reporter.getCurrentTestResult()(代表测试方法的测试结果)对象,然后将WebDriver实例注入到{{1} }对象,方法是使用ITestResult
  2. 将其添加为属性
  3. 现在在侦听器中的ITestResult.setAttribute()方法中,您可以通过onTestFailure()调用来检索webdriver对象,然后使用它来捕获屏幕截图。
  4. 不要忘记在测试类中删除对侦听器的引用。