在JUNIT 4中运行selenium代码时为空指针

时间:2012-06-28 23:17:29

标签: selenium webdriver

我正在尝试运行此代码,但我得到空指针异常。 我使用的是Junit 4.10和Selenium 2.24.1 JARS。

例外是@After“driver.quit();”

当我在家里用Desktop运行相同的代码时,似乎工作正常。唯一的区别是我运行Eclipse Indigo @ home并在这里运行Eclipse Ganymede。但我不认为这应该是一个问题,除非我弄错了。

堆栈跟踪:     显示java.lang.NullPointerException     在framework.Ford.tearDown(Ford.java:36)     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)     在
     org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:45)

感谢。

public class Ford {

    static private WebDriver driver;
    static private String baseUrl;
    static private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {
        driver = new FirefoxDriver();
        baseUrl = "http://www.google.com/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testFord() throws Exception {
        driver.get(baseUrl + "/finance");
        driver.findElement(By.linkText("AA")).click();
        driver.findElement(By.id("gbqfq")).click();
        driver.findElement(By.id("gbqfq")).clear();
        driver.findElement(By.id("gbqfq")).sendKeys("f");
        driver.findElement(By.id(":1")).click();
    }

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

}

1 个答案:

答案 0 :(得分:0)

您可以在tearDown()方法中进行此更改后尝试 -

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

这可能会解决问题。