Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得;空指针异常";在使用SeleniumWebDriver执行maven项目时_Java_Maven_Selenium_Selenium Webdriver - Fatal编程技术网

Java 获得;空指针异常";在使用SeleniumWebDriver执行maven项目时

Java 获得;空指针异常";在使用SeleniumWebDriver执行maven项目时,java,maven,selenium,selenium-webdriver,Java,Maven,Selenium,Selenium Webdriver,当我的代码首先执行时,它执行LoginTest.Java类,然后它进入Main.Java,但在这些代码中,我得到空指针异常,它不是读取get-the-driver-in方法。 谁能帮我解决这个问题,我是初学者 提前谢谢 LoginTest.Java类: public class LoginTest { private static final String ADDRESS_TO_TEST = "http://www.gmail.com"; private WebDriver d

当我的代码首先执行时,它执行
LoginTest.Java
类,然后它进入
Main.Java
,但在这些代码中,我得到空指针异常,它不是读取get-the-driver-in方法。 谁能帮我解决这个问题,我是初学者

提前谢谢

LoginTest.Java类

public class LoginTest {
    private static final String ADDRESS_TO_TEST = "http://www.gmail.com";

    private WebDriver driver;
    Main Login;
    HomePage homePage;

    @BeforeTest
    public void setUp() {

        FirefoxDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get(ADDRESS_TO_TEST);

    }

    @Test(priority = 0)
    public void testLoginPageAppear() {

        // Create Login Page object
        Login = new Main(driver);
        System.out.println("Login-->" + Login);
        Login.loginToGmail("abc@gmail.com", "abc");
        homePage = new HomePage(driver);
        // Verify home page
        Assert.assertTrue(homePage.getHOmePageEmailAddress().toLowerCase()
                .contains("Google Account: abc@gmail.com"));
    }
}
Main.Java类:

package GmailLogin;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class Main {

    /*
     * Reference
     * URL:http://www.guru99.com/page-object-model-pom-page-factory-in-
     * selenium-ultimate-guide.html
     */

    WebDriver driver;

    By email = By.id("Email");
    By nextButton = By.id("next");
    By password = By.id("Passwd");
    By signInButton = By.id("signIn");

    public Main(WebDriver driver) {
        System.out.println("Driver--->" + driver);
        this.driver = driver;
    }

    public void setEmailAddress(String strEmailAddress) {
        driver.findElement(email).sendKeys(strEmailAddress);

    }

    public void clickNextButton() {
        driver.findElement(nextButton).click();
    }

    public void setPassword(String strPassword) {
        driver.findElement(password).sendKeys(strPassword);
    }

    public void clickSignInButton() {
        driver.findElement(signInButton).click();
    }

    public void loginToGmail(String strEmailAddress, String strPassword) {

        System.out.println("Email-->" + strEmailAddress);
        System.out.println("Password-->" + strPassword);
        this.setEmailAddress(strEmailAddress);
        this.clickNextButton();
        this.setPassword(strPassword);
        this.clickSignInButton();
    }
}
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Driver--->null
Login-->GmailLogin.Main@5940ce27
Email-->abc@gmail.com
Password-->abc
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 21.016 sec <<< FAILURE! - in TestSuite
testLoginPageAppear(GmailLogin.LoginTest)  Time elapsed: 0.047 sec  <<< FAILURE!
java.lang.NullPointerException
    at GmailLogin.LoginTest.testLoginPageAppear(LoginTest.java:47)
空指针异常:

package GmailLogin;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class Main {

    /*
     * Reference
     * URL:http://www.guru99.com/page-object-model-pom-page-factory-in-
     * selenium-ultimate-guide.html
     */

    WebDriver driver;

    By email = By.id("Email");
    By nextButton = By.id("next");
    By password = By.id("Passwd");
    By signInButton = By.id("signIn");

    public Main(WebDriver driver) {
        System.out.println("Driver--->" + driver);
        this.driver = driver;
    }

    public void setEmailAddress(String strEmailAddress) {
        driver.findElement(email).sendKeys(strEmailAddress);

    }

    public void clickNextButton() {
        driver.findElement(nextButton).click();
    }

    public void setPassword(String strPassword) {
        driver.findElement(password).sendKeys(strPassword);
    }

    public void clickSignInButton() {
        driver.findElement(signInButton).click();
    }

    public void loginToGmail(String strEmailAddress, String strPassword) {

        System.out.println("Email-->" + strEmailAddress);
        System.out.println("Password-->" + strPassword);
        this.setEmailAddress(strEmailAddress);
        this.clickNextButton();
        this.setPassword(strPassword);
        this.clickSignInButton();
    }
}
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Driver--->null
Login-->GmailLogin.Main@5940ce27
Email-->abc@gmail.com
Password-->abc
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 21.016 sec <<< FAILURE! - in TestSuite
testLoginPageAppear(GmailLogin.LoginTest)  Time elapsed: 0.047 sec  <<< FAILURE!
java.lang.NullPointerException
    at GmailLogin.LoginTest.testLoginPageAppear(LoginTest.java:47)
-------------------------------------------------------
T T S T S
-------------------------------------------------------
运行测试套件
驱动程序-->null
登录-->GmailLogin。Main@5940ce27
电子邮件-->abc@gmail.com
密码-->abc

测试运行:1,失败:1,错误:0,跳过:0,经过的时间:21.016秒此行导致驱动程序对象仅在方法范围内:

FirefoxDriver driver = new FirefoxDriver();
换成

driver = new FirefoxDriver();
以填充类属性