2012-10-05 58 views
3

我在autoamted測試新手使用webdriver.Would有人請檢查爲什麼我收到顯示java.lang.NullPointerException的webdriver

java.lang.NullPointerException 
    at SuccessfullHoverTestCib.testSuccessfullHoverTestCib 
    (SuccessfullHoverTestCib.java:29) 
    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)..... 

我運行下面的代碼:

public class SuccessfullHoverTestCib { 
    private WebDriver driver; 
    private String baseUrl; 
    private StringBuffer verificationErrors = new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
     File pathToFirefoxBinary = new File("C:\\Documents and Settings\\chakarova\\Local Settings\\Application Data\\Mozilla Firefox\\firefox.exe"); 
     FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary); 
     WebDriver driver = new FirefoxDriver(firefoxbin,null); 
     baseUrl = "http://cibnew.sofia.ifao.net:7001/cib_web/web"; 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    } 

    @Test 
    public void testSuccessfullHoverTestCib() throws Exception { 
     driver.get(baseUrl); 
     driver.findElement(By.id("inputButton")).click(); 
     driver.findElement(By.linkText("Hotels")).click(); 
     driver.findElement(By.id("pageLink_57")).click(); 
    } 

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

當我指向錯誤跟蹤,它鏈接到測試method->driver.get(baseUrl);我認爲問題與firefox.exe的路徑的定義相關,但我不知道如何解決它。任何幫助將不勝感激。

+0

哪一行是SuccessfullHoverTestCib.java:29? –

回答

12

在你的setUp()方法中,聲明一個名爲driver的本地WebDriver變量,並將其設置爲一個新的驅動程序實例。您的類級驅動程序變量永遠不會設置爲實例,因此始終爲空。

public class SuccessfullHoverTestCib { 
    private WebDriver driver; 
    private String baseUrl; 
    private StringBuffer verificationErrors = new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
     File pathToFirefoxBinary = new File("C:\\Documents and Settings\\chakarova\\Local Settings\\Application Data\\Mozilla Firefox\\firefox.exe"); 
     FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary); 

     // **** This is the line that changes. 
     // **** Note the lack of the WebDriver type. 
     driver = new FirefoxDriver(firefoxbin,null); 
     baseUrl = "http://cibnew.sofia.ifao.net:7001/cib_web/web"; 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
    } 

    // The rest of your class should remain the same 
} 
+0

我已經改變了你的建議後的代碼,現在它的工作原理!我非常感謝你的幫助!非常感謝。 – Mira

相關問題