我正在尝试运行此代码,但我得到空指针异常。 我使用的是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);
}
}
}
答案 0 :(得分:0)
您可以在tearDown()方法中进行此更改后尝试 -
@After
public void tearDown() throws Exception {
if (driver != null)
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
这可能会解决问题。