在运行selenium测试时需要帮助调试NPE

时间:2018-03-05 16:45:17

标签: java selenium selenium-webdriver automation

我有这个loginPage类:

package pages;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import DevFactory.aLine.browserConfig;

public class LoginPage extends browserConfig {

    By userName = By.xpath("//input[@id='username']");
    By password = By.xpath("//input[@id='password']");
    By loginButton = By.xpath("//button[@value='Login']");
    WebDriverWait wait = new WebDriverWait(driver, 120);

    By aLineText= By.xpath("//span[@class='navbar-text navbar-nav company-title']/text()");

    public void LoginToAline(String UserName, String Password)
    {
        driver.findElement(userName).sendKeys(UserName);
        driver.findElement(password).sendKeys(Password);
        driver.findElement(loginButton).click();

        wait.until(ExpectedConditions.visibilityOfElementLocated(aLineText));
        System.out.println("OK Dude!! Login Successful");
    }
}

我有一个loginTest,我在其中创建了loginPage类的对象,并在那里调用了loginToAline()方法。

package DevFactory.aLine;

import org.junit.Test;

import pages.LoginPage;

public class LoginTest extends browserConfig {

    LoginPage obj = new LoginPage();

    @Test
    public void loGinTest()
    {
        obj.LoginToAline("<userName>", "<Password>");
    }

}

我用maven运行测试,但是我得到了空指针异常:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.103 sec <<< FAILURE!
loGinTest(DevFactory.aLine.LoginTest)  Time elapsed: 0.006 sec  <<< ERROR!
java.lang.ExceptionInInitializerError
    at DevFactory.aLine.LoginTest.<init>(LoginTest.java:9)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
    at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:882)
    at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:96)
    at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:72)
    at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:46)
    at pages.LoginPage.<clinit>(LoginPage.java:15)
    ... 29 more

有人可以帮我调试这个例外,为什么会发生这种情况?我怎么能让它消失。

0 个答案:

没有答案