2014-05-22 27 views
0

我最近在Java中編寫了一個與FireFoxDriver()完美協作的Selenium程序。我的第二步是能夠使用Selendroid在我的Android設備上運行此程序。我去了他們的網站here,並能夠下載jar並通過端口4444連接到他們的localhost。
但是,當我嘗試他們的示例時,Eclipse無法識別SelendroidDriver()並建議我回到WebDriver()。
這裏是他們的代碼:
SelendroidDriver不在jar文件中

SelendroidCapabilities capa = new SelendroidCapabilities("io.selendroid.testapp:0.10.0"); 

// My error appears when I create the new SelendroidDriver(). 
WebDriver driver = new SelendroidDriver(capa); 
WebElement inputField = driver.findElement(By.id("my_text_field")); 
Assert.assertEquals("true", inputField.getAttribute("enabled")); 
inputField.sendKeys("Selendroid"); 
Assert.assertEquals("Selendroid", inputField.getText()); 
driver.quit(); 

我也注意到,SelendroidDriver類不會出現在我的文件雖然我下載了Selendroid jar文件,版本0.10.0。

+0

下載後,您是否將.jar添加到Eclipse中的類路徑中? – SiKing

+0

我完全像他們推薦在http://stackoverflow.com/questions/1334802/how-can-i-use-external-jars-in-an-android-project – Chiquelo

+0

在你的Eclipse項目中,你能看到條目'參考圖書館'?如果你擴展它,你能看到你的jar嗎? – SiKing

回答

2

對於那些對我如何解決我的問題感到好奇的人,這裏是我所做的: 我去了這site得到selendroid-client jar文件對應於我的獨立版本。 下載獨立的jar文件有點不夠。

+0

你包括所有的罐子嗎? –

+0

不!只有selendroid-client一個。然後,您必須將文件包含在構建路徑中 – Chiquelo

0

我面臨同樣的問題,直到我找到SelendroidDriverhere。根據您的項目導入並更改軟件包名稱。

SelendroidDriver.java有實現接口方法的類,它們在Java 1.6中可以用@Override註解。但是,在Java 1.5中,@override只能應用於覆蓋超類方法的方法。

轉到您的項目首選項並將「Java編譯器級別」設置爲1.6,並確保您選擇JRE 1.6從Eclipse執行程序。

添加此類後,仍然會看到多個依賴性錯誤,但現在位於SelendroidDriver.java文件中。您現在可以導入these類來應對這些錯誤。根據GitHub目錄和您的工作項目,確保包層次結構保持正確。

導入所有這些類後,常量字段SWITCH_TO_CONTEXT,GET_CONTEXT_HANDLESGET_CURRENT_CONTEXT_HANDLE未被解析。我用一個很差的解決方法將它們更改爲其他可用的常量字段來測試此示例。

+0

我曾嘗試過。但是,我從未到達SWITCH_TO_CONTEXT部分。我很好奇,你的意思是窮人的解決方法? – Chiquelo

+0

您是否打算導入.java源文件而不是.jar文件?如果是的話,這絕對是錯誤的! – SiKing

+0

@Chiquelo當我將上述常量字段更改爲其他字段時,我正在調整SelendroidDriver類的功能。這就是我指出的一個糟糕的解決方法。 @SiKing我對Java不是很熟悉。一週後開始進行這個項目。我猜這個詞彙導入在這裏使用是錯誤的。我的意思是使用提到的.java文件來排除依賴關係。 – purplegrunge