硒测试在登录POM

时间:2020-03-30 13:51:13

标签: java selenium selenium-chromedriver

嗨,我正在尝试在POM中创建一个简单的自动化脚本,但是在脚本执行过程中遇到了java.lang.NullPointerException。请任何人帮助我解决问题。

通过创建浏览器工厂,返回WebDriver。

package Com.selenium.utils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class BrowserFactory {

               public static WebDriver BrowserStart(WebDriver driver,String browsername, String url) {

        if(browsername.equalsIgnoreCase("Chrome")) {
            System.setProperty("webdriver.chrome.driver", "E:\\Eclipse-Java-Kepler\\New folder\\chromedriver\\chromedriver.exe");
            driver = new ChromeDriver();
        }
        else if(browsername.equalsIgnoreCase("Firefox")){
        //  System.setProperty("", "");

        }       
        else if(browsername.equalsIgnoreCase("IE")) {
        //  System.setProperty("", "");         
        }

        else {          
            System.out.print("Browser is not supported");
        }

        driver.get(url);
        driver.manage().window().maximize();
        return driver;      
}

}

以下代码用于基本类

package Com.selenium.pages;
import org.openqa.selenium.WebDriver;
import Com.selenium.utils.BrowserFactory;

public class BaseClass implements IClass {  
    public WebDriver WD;
    public WebDriver Setup() {              
        return BrowserFactory.BrowserStart(WD, "chrome", "https://www.udemy.com/");     
    }
}

然后,我创建了一个类,其中包含用于在该页面上执行任何操作的所有WebElements和方法

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;

public class LandingClass {

    public WebDriver WD = null;

    public LandingClass(WebDriver driver) {
        this.WD = driver;
        PageFactory.initElements(driver, this);
    }

    @FindBy(xpath=".//button[@class='btn btn-quaternary']")

     public WebElement LoginButton;

     public void Openlgin() {
         LoginButton.click();
        }


}

最后,我创建了一个TestNG类来运行测试用例,但是在执行测试用例的过程中得到了“ NullPointerException”

package Com.selenium.tests;

import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import Com.selenium.pages.BaseClass;
import Com.selenium.pages.LandingClass;

public class LoginScenarios extends BaseClass {
    LandingClass LC;
    @BeforeTest
    public void setup() {
        super.Setup();
        LC = new LandingClass(WD);

    }

 @Test(priority = 0)
  public void OpenLogin() {
      try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    LC.Openlgin();
  }
}

Image of console

TestNG Result

0 个答案:

没有答案