页面对象错误(java.lang.NullPointerException)

问题描述 投票:-1回答:1

我使用selenium WebDriver和java和Junit做了一个关于Page Objects的培训的基础项目。所以,我也创建了一个页面对象类和Junit类。我调用方法并将参数传递给方法但是,eclipse显示一条消息:java.lang.NullPointerException

public class LogarBkoMaisPage {

static WebDriver driver;

 By campoNome = By.id("matricula_I");
 By campoSenha = By.id("senha_I");
 By btnLogin      = By.id("bt_entrar");

public LogarBkoMaisPage(WebDriver driver) {
    this.driver = driver;
}
public void logar(String usuario, String senha) {
    driver.findElement(campoNome).sendKeys(usuario);
    driver.findElement(campoSenha).sendKeys(senha);
    driver.findElement(btnLogin).click();
}
}

public class LogarBkoMaisTest {

static WebDriver driver;

@Before
public void setUp() throws Exception {  
    SelecionarNavegador nav = new SelecionarNavegador();
    nav.iniciarNavegador("ie","http://10.5.9.45/BkoMais_Selenium/");
}
@Test
public void logarAplicacao() {      
    try {
        LogarBkoMaisPage login = new LogarBkoMaisPage(driver);
        login.logar("844502","Bcc201707");
    }catch(Exception e) {
        System.out.println("Mensagem de erro: " +e);
    }
}
@After
public void tearDown() throws Exception {
}
}

public class SelecionarNavegador {

static WebDriver driver;

public static WebDriver iniciarNavegador(String nomeNavegador, String url) {

    if(nomeNavegador.equalsIgnoreCase("firefox")) {
        System.setProperty("webdriver.gecko.driver", "E:\\workspace_BCC_QA_BKOMAIS\\"
                + "FireFoxGeckodriver64\\geckodriver.exe");
        driver = new FirefoxDriver();
    }
    else if(nomeNavegador.equalsIgnoreCase("chrome")){
        System.setProperty("webdriver.chrome.driver", "E:\\workspace_BCC_QA_BKOMAIS"
                + "\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();    
    }else if(nomeNavegador.equalsIgnoreCase("IE")) {
        System.setProperty("webdriver.ie.driver", "E:\\workspace_BCC_QA_BKOMAIS"
                + "\\IE Plugin\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
    }
    driver.manage().window().maximize();
    driver.get(url);
    return driver;
}
}

例外:

Exception

selenium-webdriver nullpointerexception pageobjects
1个回答
0
投票

你得到一个空指针异常,因为iniciarNavegador类中的SelecionarNavegador方法是初始化驱动程序的方法,它返回必须分配给varable的driver。您需要在setUp()method中执行此操作

@Before
public void setUp() throws Exception {  
    SelecionarNavegador nav = new SelecionarNavegador();
    driver=nav.iniciarNavegador("ie","http://10.5.9.45/BkoMais_Selenium/");
}
© www.soinside.com 2019 - 2024. All rights reserved.