Selenium + WebDriver + Firefox

Estou com dificuldades em rodar teste funcional. Li alguns artigos mas não estou conseguindo
saber o motivo do erro.
BaseURL está null, não está executando o método a seguir.

Obrigado.

@BeforeClass(alwaysRun = true)
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "http://localhost:8080";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

Código está assim

import static org.junit.Assert.*;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

public class TestePaginaSoma {

    private WebDriver driver;
    private String baseUrl;
    private boolean acceptNextAlert = true;
    private StringBuffer verificationErrors = new StringBuffer();

    @BeforeClass(alwaysRun = true)
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "http://localhost:8080";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testE1() throws Exception {
        driver.get(baseUrl + "/SomarParcelas/");
        driver.findElement(By.name("p1")).clear();
        driver.findElement(By.name("p1")).sendKeys("12");
        driver.findElement(By.name("p2")).clear();
        driver.findElement(By.name("p2")).sendKeys("21");
        driver.findElement(By.name("calcular")).click();
        assertEquals(driver.findElement(By.cssSelector("h1")).getText(), "O resultado foi 33");
    }

    @AfterClass(alwaysRun = true)
    public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }

    private boolean isElementPresent(By by) {
        try {
            driver.findElement(by);
            return true;
        } catch (NoSuchElementException e) {
            return false;
        }
    }

    private boolean isAlertPresent() {
        try {
            driver.switchTo().alert();
            return true;
        } catch (NoAlertPresentException e) {
            return false;
        }
    }

    private String closeAlertAndGetItsText() {
        try {
            Alert alert = driver.switchTo().alert();
            String alertText = alert.getText();
            if (acceptNextAlert) {
                alert.accept();
            } else {
                alert.dismiss();
            }
            return alertText;
        } finally {
            acceptNextAlert = true;
        }
    }
}

Stacktrace

java.lang.NullPointerException
    at TestePaginaSoma.testE1(TestePaginaSoma.java:34)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Coloca o BaseURL como uma constante string com valor fixo e use-os nos 2 lugares…

Só uma duvida, você baixou o Driver do Firefox? porque quando ele istancia o FirefoxDriver() ele procura na sua máquina um arquivo de driver do Firefox que precisa estar configurado.

Você precisa fazer uma configuração semelhante a essa :

`

public class SeleniumConfiguration {

private static WebDriver driver;

public static String getProp(String prop) throws IOException {
	Properties props = new Properties();
	FileInputStream file = new FileInputStream("./src/main/resources/selenium.properties");
	props.load(file);
	prop = props.getProperty(prop);
	return prop;
}

@BeforeClass
public static void setUpTest() throws IOException {
	System.setProperty(getProp("selenium.driver"), getProp("selenium.arquivo"));
	setDriver(new ChromeDriver());
}

@AfterClass
public static void tearDownTest() {
	getDriver().close();
	getDriver().quit();
}

public static WebDriver getDriver() {
	return driver;
}

public static void setDriver(WebDriver driver) {
	SeleniumConfiguration.driver = driver;
}

public void waitForElement(WebElement element) {
	WebDriverWait wait = new WebDriverWait(getDriver(), 5);
	wait.until(ExpectedConditions.visibilityOf(element));
}

}

`

Jovem, tente adicionar um web driver wait no seu método setUp

WebDriver driver; webDriverWait = new WebDriverWait(driver, 20)