U получает NPE (исключение нулевого указателя) в строке
loginButton.click();
, это означает, что вы выполняете какую-то операцию над объектом, который получил нулевое значение, и в этом случае это не что иное, как loginButton
теперь возникает вопрос: почему кнопка входа в систему равна нулю, когда вы инициализируете ее с помощью
@FindBy(className = "ico fa fa-lock")
static WebElement loginButton;
, это возможно, потому что веб-драйвер не может найти этот элемент и, следовательно, он равен нулю
попробуйте следующие предложения
public HomePage(WebDriver driver) {
super(driver);
PageFactory.initElements(driver, this);
}
и, если это не сработает, попробуйте использовать одно имя класса, подобное этому
@FindBy(className = "ico")
private WebElement loginButton;
@FindBy(className = "login")
List<WebElement> buttons;
, и, нажимая, вот так
buttons.get(0).click();
иначе попробуйте с помощью javascript click direct, оно обязательно должно работать
((JavascriptExecutor)driver).executeScript("document.getElementsByClassName('login')[0].click()");