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

Caused by: java.lang.InstantiationException: TestNGFrameWorkBetaVersionPackage.TestNGFrameWorkBetaVersionClass

可能是什么原因造成的

java.lang.InstantiationException: TestNGFrameWorkBetaVersionPackage.TestNGFrameWorkBetaVersionClass

这个TestNG有错误吗?寻求您的支持。

问题出在你的测试代码上

您基本上已经向侦听器添加了一个非默认构造函数。从您的屏幕截图中不清楚您是如何连接监听器的(堆栈跟踪表明正在连接此监听器,通过 testng xml 文件或通过服务加载器机制)

Listener 对象由 TestNG 通过反射自动实例化。在这些情况下,TestNG 会寻找一个默认构造函数来实例化侦听器。

要解决此问题,请也向您的侦听器添加一个默认构造函数 class。

如果您想要在失败时捕获屏幕截图,请执行以下操作:

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