2012-05-10 26 views
1

我是新來的硒,仍然在探索它。我試圖在網站上測試ajax元素。點擊元素時,頁面上某些區域會彈出一些文字。我已經在RC和WebDriver上運行了這個測試。它工作正常。現在我想(只是出於好奇)通過WebDriverBackedSelenium來測試它。但它拋出了一個錯誤。該代碼是:WebDriverBackedSelenium中的NullPointerException

import com.thoughtworks.selenium.SeleneseTestBase; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.WebDriverBackedSelenium; 
    import org.openqa.selenium.internal.WrapsDriver; 
    import org.junit.After; 
    import org.junit.Before; 
    import org.junit.Test; 


    public class CheckElements extends SeleneseTestBase { 
    @Before 
    public void setUp() throws Exception { 
     String baseUrl = "path/to/the/site"; 
     WebDriver driver = ((WrapsDriver) selenium).getWrappedDriver(); 
     selenium = new WebDriverBackedSelenium(driver, baseUrl); 
    } 

的錯誤是:

java.lang.NullPointerException 
      at com.CheckElements.setUp(CheckElements.java:17) 

我認爲主要的問題是在設置方法。我使用硒獨立服務器2.0和junit 4.7。你能告訴我哪裏錯了嗎?

另一個問題??

如果我編寫與下面相同的測試,測試運行正常,但即使文本不符合要求,它也不會報錯。

import com.thoughtworks.selenium.SeleneseTestBase; 
    import org.openqa.selenium.firefox.FirefoxDriver; 
    import org.openqa.selenium.WebDriver; 
    import org.openqa.selenium.WebDriverBackedSelenium; 
    import org.junit.After; 
    import org.junit.Before; 
    import org.junit.Test; 


    public class New extends SeleneseTestBase { 

     WebDriver driver; 
     @Before 
     public void setUp() throws Exception { 
     driver = new FirefoxDriver(); 
     String baseUrl = "path/to/the/link"; 
     selenium = new WebDriverBackedSelenium(driver, baseUrl); 
    } 

我希望我的問題很清楚。謝謝。

回答

2

我強烈希望這是問題:

WebDriver driver = ((WrapsDriver) selenium).getWrappedDriver(); 

的驅動程序實例可能是零。

的區別在其他測試之中,您明確地創建成一個FirefoxDriver:

driver = new FirefoxDriver(); 
+0

很抱歉,但你能解釋它嗎?我的意思是,無論我在哪裏搜索,我都以同樣的方式找到了它我可以在這裏做什麼改變? – Nebula

+0

我不是最好的Java人。但是「WebDriver driver =((WrapsDriver)selenium).getWrappedDriver();」會失敗,因爲在給出'selenium'值之後,所以當它試圖調用它時,它將爲空 - 硒直到它後面的行爲空。嘗試將其更改爲「WebDriver driver = new FirefoxDriver();」 – Arran