Веб-элементы не инициализируются.
код приведен ниже:
Домашняя страница.java
package crossword.pages;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import base.TestBase;
public class HomePage extends TestBase{
@FindBy(xpath = "//title")
WebElement homepageTitle;
@FindBy(xpath = "//div[@class=\"top-links\"]//a[text()='Login']")
WebElement loginLink;
public HomePage() {
PageFactory.initElements(driver, this);
}
public String gethomepagetitle() {
return homepageTitle.getAttribute("title");
}
public void clickonLogin() {
loginLink.click();
}
}
Домашняя страницаTest.java
package testcases;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import base.TestBase;
import crossword.pages.HomePage;
public class HomePageTest extends TestBase {
public HomePageTest() {
super();
}
HomePage homepage = new HomePage();
@BeforeMethod
public void setUp() {
TestBase.initialization();
}
@Test
public void homepagetitletest() {
System.out.print(homepage);
String actualTitle = homepage.gethomepagetitle();
String expectedTitle = "Books - Crossword - Crossword";
Assert.assertEquals(actualTitle, expectedTitle);
}
@Test
public void clickonloginlink() {
homepage.clickonLogin();
}
@AfterMethod
public void exit() {
teardown();
}
}
Ошибка, которую я получаю:
FAILED: clickonloginlink java.lang.NullPointerException в org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69) в org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java: 38) на com.sun.proxy.$Proxy9.click(неизвестный источник) на crossword.pages.HomePage.clickonLogin(HomePage.java:25) на testcases.HomePageTest.clickonloginlink(HomePageTest.java:35) на sun.reflect. NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник) в java.lang.reflect.Method.invoke (неизвестный источник) в org.testng. internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135) в org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:598) в org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)