0

我无法将具有此构造函数的 Menus Repository Class 继承到另一个名为 sub menus 的类,

public MenusRepository(WebDriver driver)
{
    this.driver = driver;
    PageFactory.initElements(driver,this);
}

当我继承 Eclipse 时将此消息显示为隐式超级构造函数 SubMenusRepository() 对于默认构造函数未定义。必须定义一个显式的构造函数,并添加建议

public WasteStrorageRepository(WebDriver driver) {
    super(driver);
    // TODO Auto-generated constructor stub
}

我对它的工作原理感到很困惑,我是 Selenium 和 PageFactory 的新手,需要澄清它是如何工作的以及如何处理,我在这两个类上都有 Webelement。所以 MenusRepository 类将被 SubMenus 类继承,然后是最后一个测试用例类。

4

1 回答 1

0

下面是一个基本页面对象类的示例:

import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.WebDriver;

public class BasePageObject {

    WebDriver driver;

    public BasePageObject(WebDriver driver) {

        this.driver = driver;
        PageFactory.initElements(driver, this);

    }

}

这是扩展基本页面对象的页面对象的示例:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class CalculatorPage extends BasePageObject {

    public CalculatorPage(WebDriver driver) {
        super(driver);
    }

    @FindBy(id = "userid")
    WebElement userID;

    public void setUserID(String text) {
        userID.sendKeys(text);
    }

}

页面类扩展基类,构造函数调用基类进行初始化,传递驱动参数。

于 2018-03-15T14:08:42.760 回答