我应该在基础页面中实例化对象 - Selenium Java
Should I instantiate objects in the Base Page - Selenium Java
我正在编写 Java Selenium 测试自动化框架。
我正在使用页面对象模型。
我有一个基页,其中包含可由扩展基页的所有其他页面使用的元素和方法。
到目前为止我还没有实例化基页。
我实例化了所有其他页面,如下所示:
public xxxxxxxxPage() {
PageFactory.initElements(driver, this);
}
我没有实例化 BasePage,因为我认为所有 BasePage 元素都由扩展它的其他页面实例化。
但是,今天我想使用我放在BasePage 上的常用方法。该方法想要使用也在 BasePage 上的元素。但是,它找不到元素,因为 BasePage 尚未实例化。
那么我可以将以下代码添加到 BasePage 中吗?还是这样做是错误的?
public BasePage() {
PageFactory.initElements(driver, this);
}
在 BasePage
中使用 PageFactory.initElements(driver, this);
也会启动派生的 class 中的元素,您可以在基础 class 构造函数中使用它并从中删除它派生页面对象。
我正在编写 Java Selenium 测试自动化框架。 我正在使用页面对象模型。 我有一个基页,其中包含可由扩展基页的所有其他页面使用的元素和方法。
到目前为止我还没有实例化基页。 我实例化了所有其他页面,如下所示:
public xxxxxxxxPage() {
PageFactory.initElements(driver, this);
}
我没有实例化 BasePage,因为我认为所有 BasePage 元素都由扩展它的其他页面实例化。
但是,今天我想使用我放在BasePage 上的常用方法。该方法想要使用也在 BasePage 上的元素。但是,它找不到元素,因为 BasePage 尚未实例化。
那么我可以将以下代码添加到 BasePage 中吗?还是这样做是错误的?
public BasePage() {
PageFactory.initElements(driver, this);
}
在 BasePage
中使用 PageFactory.initElements(driver, this);
也会启动派生的 class 中的元素,您可以在基础 class 构造函数中使用它并从中删除它派生页面对象。