Selenium, Page Factory, не удалось унаследовать класс с PageFactory

Я не смог унаследовать класс репозитория меню, у которого есть этот конструктор, к другому классу с именем подменю,

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

когда я наследую, Eclipse показывает это сообщение как неявный супер-конструктор. SubMenus Repository () не определен для конструктора по умолчанию. Нужно определить явный конструктор и советы по добавлению

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

Я очень запутался в том, как это работает, я новичок в Selenium и PageFactory, Нужно разъяснить, как это работает и как с этим обращаться, у меня есть Webelement в обоих классах. Таким образом, класс Menus Repository будет унаследован классом SubMenus, за которым следует последний класс теста.

1 ответ

Вот пример класса объекта базовой страницы:

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);
    }

}

Класс страницы расширяет базовый класс, и конструктор вызывает для инициализации базовый класс, передавая параметр драйвера.

Другие вопросы по тегам