2017-03-11 70 views
0

所以我想寫一個自動化測試腳本的Android模擬器(AVD)內運行的Android應用程序,但我在Appium日誌得到如下的錯誤:Appium和虛擬Android設備所需的功能:SessionNotCreatedException錯誤

[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. 
We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities 
","capabilities","sessionId","id","sessionId","id"]} and you sent ["desiredCapab 
ilities","requiredCapabilities","capabilities","alwaysMatch","firstMatch"] 

我的設置是:

  1. 的Android工作室162(W/SDK,請注意,這個最新版本不包括「機器人」命令了,Android的虛擬設備的創建是通過工具實現>安卓> AVD Manager)
  2. 的IntelliJ 2016年3月5日(用於編寫自動測試腳本)
  3. 硒的Java 3.3.0(所需的jar)
  4. appium Java客戶端4.1.2(所需的jar)
  5. appium服務器1.6.3(在執行通過的NodeJS運行 'appium')
  6. Android虛擬設備5.1版棒棒糖

運行cli來 'ADB設備' 在cmd命令給我

List of devices attached 
emulator-5554 device 

期望的能力設置爲運行測試時

@BeforeClass 
public void setUp() throws MalformedURLException{ 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 

    capabilities.setCapability("platformName","Android"); 
    capabilities.setCapability("platformVersion","5.1"); 
    capabilities.setCapability("deviceName","emulator-5554"); 
    capabilities.setCapability("app", path_to_apk); 
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

} 

IDE錯誤輸出:

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app=src//main//resources//test.apk, platformVersion=5.1, platformName=Android, deviceName=emulator-5554}], required capabilities = Capabilities [{}] 
Build info: version: '3.3.0', revision: 'b526bd5b41', time: '2017-03-07 19:26:04 +0000' 

我停留在這一點上,不知道該怎麼辦。

+0

請注意,設備名稱不是「emulator-5554」 - 這是devices udid。 –

+0

通過使用Selenium-Java 3.0.1來管理解決這個問題 – jeffsia

+0

@jeffsia有沒有更新?你有沒有想過? – SelenUser

回答

1

我在我的評論中提到我最終使用了一個較舊版本的Selenium,以便使所需功能與Appium 1.6.3預期的功能相匹配。在我的情況下,它是Selenium Java Client 3.0.1 + Appium 1.6.3。

0
org.openqa.selenium.SessionNotCreatedException: 

上面的例外只發生在我們無法在appium和移動設備之間建立時。

apk路徑有可能是錯誤的,因爲它顯示在日誌中app=src//main//resources//test.apk但它應該是它存儲的目錄的路徑,如c://mobile//apk//test.apk請糾正它。

而且你有沒有在你的DesiredCapabilities像下面提appPackageappActivity

// specify the application package that we copied from appium 

    capabilities.setCapability("appPackage", "com.testapp"); 

    // specify the application activity that we copied from appium 

    capabilities.setCapability("appActivity", ".HomeScreenActivity"); 

當您在設備上安裝.apk時需要上述參數。在創建會話時包含這些功能總是很好。

請讓我知道,如果它不適合你。

1

我無法像使用OP那樣使用硒3.0.1。我正在用appium使用硒網格。最終爲我工作的是使用[email protected],它適用於3.1.0版本以上的硒。

+0

有趣。似乎有一些appium和selenium版本的組合,我們必須考慮兼容性。就我而言,它是Appium 1.6.3和Selenium Java Client 3.0.1版本。 – jeffsia