Проблема (Вопрос) заключается …
Всем привет! Я новичок в автоматизированном тестировании, совсем недавно начала изучать PageFactory.
При использовании PageFactory.initElements() он возвращает ошибку:
Incompatible types
Required: com.test.LoginPage (имя моего класса)
Found: void
Не понимаю, в чем проблема, почему класс возвращает void.
Инициализацию элементов в конструкторе не провожу (прочитала, что это не нужно, если мы возвращаем дочернюю страницу через инициализацию PageFactory).
Просто, если метод класса возвращает новую страницу - я прописываю return PageFactory.initElements(driver, AnyPage.class);
Подскажите, пожалуйста, чем вызвано появление вышеописанной ошибки и что я делаю не так.
Привожу код двух классов
public class HomePage {
private WebDriver driver;
@FindBy(linkText = "teachingsite.MessageController")
private WebElement mesController;
public HomePage(WebDriver driver) {
this.driver = driver;
}
public LoginPage openMesController() {
mesController.click();
return PageFactory.initElements(driver, LoginPage.class);
}
}
public class LoginPage {
private WebDriver driver;
@FindBy(id = "login")
public WebElement loginField;
@FindBy(id = "password")
private WebElement passwordField;
@FindBy (xpath ="//input[@class='save']" )
private WebElement buttonLogin;
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public MessageListPage signIn(String login, String password) {
loginField.clear();
passwordField.clear();
loginField.sendKeys(login);
passwordField.sendKeys(password);
buttonLogin.click();
return PageFactory.initElements(driver, MessageListPage.class);
}
}
Ошбику вызывают PageFactory.initElements() в каждом из вышеприведенных классов.