我正在学习TestNG,所以我创建了一个基类,其中我为chrome浏览器创建了对象。

这是我的基础课

public class BaseClass {

    public String url="https://dofdev-services.azurewebsites.net/";
    public String username1="[email protected]";
    public String password1="Gravity@123";
    public  WebDriver driver;

    @BeforeClass
    public void setUp()
    {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir" +"/Drivers/chromedriver.exe"));
        driver=new ChromeDriver();
    }

    @AfterClass()
    public void tearDown()
    {
        driver.quit();
    }
}


这是我的测试用例类

public class TC_LoginPage_001 extends BaseClass{

      @Test
      public  void loginTestCase()
      {
    driver.get(url);
    LoginPagePOM lp=new LoginPagePOM(driver);
    lp.setUserName(username1);
    lp.setPassword(password1);
    lp.clickSignIn();

    if(driver.getTitle().equalsIgnoreCase(""))
    {

        Assert.assertTrue(true);
    }else {
        Assert.assertTrue(false);
    }
}


这是我的另一个类,这里​​我创建了构造函数(pom类)

 public class LoginPagePOM {

 WebDriver driver;

 public LoginPagePOM(WebDriver driver)
  {
    this.driver=driver;
    PageFactory.initElements(driver, this);
      }
    @FindBy(id="userName")
    WebElement username;

    @FindBy(name ="passwords")
     WebElement password;

    @FindBy(name="btn-sdz-login")
     WebElement click;


    public void setUserName(String usname)
          {
      username.sendKeys(usname);
               }

   public void setPassword(String Pass)
             {
         password.sendKeys(Pass);
     }

     public void clickSignIn()
       {
       click.click();
       }
               }


这是异常堆栈跟踪(获取空指针异常)

java - 我创建了chrome驱动程序对象,然后得到了java.lang.NullPointerException-LMLPHP

最佳答案

确保您的构造函数在登录页面中传递了驱动程序对象。您需要将驱动程序传递给所有页面类。登录页面也没有扩展基类。您需要进行如下扩展,并在登录页面中删除webdriver实例化。

例如:

 public class LoginPagePOM extends BaseClass {
    public LoginPagePOM (WebDriver driver)
        {
            this.driver=driver;

        }

    public void setUserName(){
     ........
     }

    public void setPassword(){
      ........
     }

}

09-03 21:57