我的类(class)使用 Selenium WebDriver 并抛出错误。
public class Test_Chromedriver {
public static WebDriver driver;
public static void main(String[] args) {
try {
System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.facebook.com");
driver.findElement(By.id("email")).sendKeys("surya");
driver.findElement(By.name("pass")).sendKeys("hello");
} catch (Exception e) {
e.printStackTrace();
}
finally{
driver.close();
driver.quit();
}
}
}
一旦我运行上面的代码,下面的错误消息就会出现:
Started ChromeDriver
port=12877
version=23.0.1240.0
log=D:\Eclipse Juno Workspace\AS Selenium workspace\WebDriver Applications\chromedriver.log
Exception in thread "main" java.lang.NullPointerException
at Test_Chromedriver.main(Test_Chromedriver.java:25)
注意:webdriver 打开 chrome 浏览器,然后在字段中输入值,但上面的错误一直显示在控制台中,最后阻止也没有执行。
最佳答案
你的麻烦来自你的try/catch
,特别是你的finally
。
因为您的驱动程序
仅在您的try{}
中,所以...您的finally
无法对您的驱动程序执行任何操作。我将重命名您的驱动程序以帮助您了解此处发生的情况。
public class Test_Chromedriver {
public static WebDriver driverNULL; // <- never instantiate
public static void main(String[] args) {
try {
System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
WebDriver driverOK=new ChromeDriver(); // < - local variable
driverOK.get("http://www.facebook.com");
driverOK.findElement(By.id("email")).sendKeys("surya");
driverOK.findElement(By.name("pass")).sendKeys("hello");
} catch (Exception e) {
e.printStackTrace();
}
finally{
driverNULL.close(); // <- want to close a object never instantiate so null pointer exception
driverNULL.quit();
}
}
}
你现在能做什么?
public class Test_Chromedriver {
public static WebDriver driver;
public static void main(String[] args) {
try {
System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
driver=new ChromeDriver(); // <- remove the Webdriver type
driver.get("http://www.facebook.com");
driver.findElement(By.id("email")).sendKeys("surya");
driver.findElement(By.name("pass")).sendKeys("hello");
} catch (Exception e) {
e.printStackTrace();
}
finally{
driver.close();
driver.quit();
}
}
}
关于在 Chrome 中通过 Selenium webDriver 运行测试用例时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236855/