【发布时间】:2018-07-05 07:03:33
【问题描述】:
当我执行测试时,我有这个“java.lang.NullPointerException”。 我该如何解决这个问题?已经检查了其他主题,但仍然有一些麻烦。 很高兴能解决这个问题。
测试(登录页面点击):
public class MainPage {
private WebDriver driver;
static WebDriver wait;
public MainPage(WebDriver driver) {
this.driver = driver;
}
@FindBy (xpath = "//a[text()='Sign in']" )
private WebElement signInButton;
public LoginPage clickSignIn() {
signInButton.click();
return new LoginPage(driver);
}
主要:
public class MainPageTest {
private WebDriver driver;
private MainPage mainPage;
@Before
public void setUp() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://github.com");
mainPage = new MainPage(driver);
}
@Test
public void signInTest(){
LoginPage loginPage = mainPage.clickSignIn();
String heading = loginPage.getHeadingText();
Assert.assertEquals("Sign in to GitHub", heading);
}
@After
public void tearDown(){
driver.quit();
}
LoginPage 类:
public class LoginPage {
WebDriver driver;
public LoginPage(WebDriver driver){
this.driver = driver;
}
private By loginField = By.xpath(".//*[@id='login_field']");
private By passwordField = By.xpath(".//*[@id='password']");
private By signInButton = By.xpath("//input[@type='submit']");
private By heading = By.xpath("//div[contains(@class, 'auth-form- header')]/h1");
private By error = By.xpath(".//*[@id='js-flash-container']//div[@class='container']");
private By createAccLink = By.xpath("//a[text()='Create an account']");
【问题讨论】:
-
请提供堆栈跟踪
-
调试一下代码看看哪个是抛出NPE
-
同时提供登录类代码