我尝试了几个选项,但仍然出现此错误:org.testng.TestNGException: Check to make sure it can be instantiate
I tried several options but this error still occurs: org.testng.TestNGException: Check to make sure it can be instantiate
问题: 我是 selenium 和自动化测试的初学者,我正在使用 java、TestNG 和 maven 编写 selenium 脚本。当我将所有内容写在一个 class 中时,一切正常,但我想要一个包含所有对象的包,一个用于测试的包,以及具有主要设置的 Base Class。该项目将包含网站每个页面的 class 和所有测试的 class。
我尝试了什么:
当我尝试修改某些内容时,另一个错误来自 BaseClass 中的构造函数,我不知道为什么
基础 class 是这样的:
我试过
public BaseClass(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
或 PagegeFactory.initElements(new AjaxElementLocatorFactory(driver, TimeoutValue), this);
并没有奏效。
你的代码的基本问题是你已经参数化了你的构造函数。
TestNG 只知道如何调用默认构造函数(无参数构造函数)。在你的例子中,你有一个参数化的构造函数,它似乎接受一个 WebDriver driver
实例,而 TestNG 不知道如何实例化它。
解决此问题的最简单方法是执行以下操作:
- 删除参数化构造函数,只使用默认构造函数。
- 采用一种抽象出 WebDriver 逻辑的方法,您的测试基本上可以调用该逻辑来获取 WebDriver 实例。
- 另外请尝试分离页面对象 classes 并测试 classes。 (你现在的class
AnalizesiPreturi
违反了这个预期)
前段时间我构建了一个名为 autospawn
的库,它使用注释驱动的方法来管理浏览器实例。
可以参考https://github.com/RationaleEmotions/autospawn#how-to-use-testng
或者,您可以使用 TestNG 侦听器,使用它可以实例化 webdriver 实例并通过 ThreadLocal
实例使其可用。
更多详情请参考我的博客post https://rationaleemotions.com/parallel_webdriver_executions_using_testng/
问题: 我是 selenium 和自动化测试的初学者,我正在使用 java、TestNG 和 maven 编写 selenium 脚本。当我将所有内容写在一个 class 中时,一切正常,但我想要一个包含所有对象的包,一个用于测试的包,以及具有主要设置的 Base Class。该项目将包含网站每个页面的 class 和所有测试的 class。
我尝试了什么: 当我尝试修改某些内容时,另一个错误来自 BaseClass 中的构造函数,我不知道为什么 基础 class 是这样的: 我试过
public BaseClass(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
或 PagegeFactory.initElements(new AjaxElementLocatorFactory(driver, TimeoutValue), this);
并没有奏效。
你的代码的基本问题是你已经参数化了你的构造函数。
TestNG 只知道如何调用默认构造函数(无参数构造函数)。在你的例子中,你有一个参数化的构造函数,它似乎接受一个 WebDriver driver
实例,而 TestNG 不知道如何实例化它。
解决此问题的最简单方法是执行以下操作:
- 删除参数化构造函数,只使用默认构造函数。
- 采用一种抽象出 WebDriver 逻辑的方法,您的测试基本上可以调用该逻辑来获取 WebDriver 实例。
- 另外请尝试分离页面对象 classes 并测试 classes。 (你现在的class
AnalizesiPreturi
违反了这个预期)
前段时间我构建了一个名为 autospawn
的库,它使用注释驱动的方法来管理浏览器实例。
可以参考https://github.com/RationaleEmotions/autospawn#how-to-use-testng
或者,您可以使用 TestNG 侦听器,使用它可以实例化 webdriver 实例并通过 ThreadLocal
实例使其可用。
更多详情请参考我的博客post https://rationaleemotions.com/parallel_webdriver_executions_using_testng/