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);
}
}
Класс страницы расширяет базовый класс, и конструктор вызывает для инициализации базовый класс, передавая параметр драйвера.