2017-04-10 68 views
0

我想在eclipse中執行這個java代碼,使用Appium和一個使用USB連接的真實設備。我無法對設備中安裝的應用程序進行測試。無法在真實設備上運行appium腳本。得到一個錯誤的應用程序錯誤

package appiumproject; 
    import io.appium.java_client.android.AndroidDriver; 
    import java.io.File; 
    import java.net.MalformedURLException; 
    import java.net.URL; 
    import java.util.concurrent.TimeUnit; 
    import org.openqa.selenium.remote.CapabilityType; 
    import org.openqa.selenium.remote.DesiredCapabilities; 

    public class StartApplication { 

      private static AndroidDriver driver; 
      public static void main(String[] args) throws MalformedURLException, InterruptedException { 

       File classpathRoot = new File(System.getProperty("user.dir")); 
       File appDir = new File(classpathRoot, "/sdcard/Android/data/"); 
       File app = new File(appDir, "com.alensw.PicFolder"); 

       DesiredCapabilities capabilities = new DesiredCapabilities(); 
       capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); 
       capabilities.setCapability("deviceName", "BX9034M10V"); 
       capabilities.setCapability("platformVersion", "4.1.2"); 
       capabilities.setCapability("platformName", "Android"); 
       capabilities.setCapability("app", app.getAbsolutePath()); 
       capabilities.setCapability("appPackage", "com.alensw.PicFolder"); 
       //capabilities.setCapability("appActivity", "com.amazon.mShop.home.HomeActivity"); 

       driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
       driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); 
       Thread.sleep(10000); 
       driver.quit(); 

而下面是我在Eclipse控制檯得到錯誤。有人可以讓我知道錯誤的原因:'錯誤的應用程序' 如何從Android設備給app,appActivity的classPathRoot?
}線程「main」中的異常org.openqa.selenium.SessionNotCreatedException:無法創建新的會話。 (原始錯誤:錯誤的應用程序:C:\ Users \ admin \ workspace \ AppiumProject \ sdcard \ Android \ data \ com.alensw.PicFolder。應用程序路徑需要是絕對的,或者相對於appium服務器的安裝目錄, (警告:服務器沒有提供任何堆棧跟蹤信息) 命令持續時間或超時:錯誤:使用本地應用程序,但沒有以.zip,.ipa或.apk結尾) 0毫秒 構建信息:版本:'3.3.1',修訂:'5234b32',時間:'2017-03-10 09:04:52 -0800' 系統信息:主機:'ADMIN-PC',ip: '10.0.0.63',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_121' 驅動程序信息:driver.version:AndroidDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInst ANCE(未知來源) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知來源) 在java.lang.reflect.Constructor.newInstance(未知來源) 在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java :216) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) 在io.appium.java_client.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:160) 在io.appium.java_client .remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:75) 在io.appium.java_client.remote.AppiumCommandExecutor.doExecute(AppiumCommandExecutor.java:111) 在io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java :162) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) 在io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) 在io.appium.java_client.AppiumDriver.execute( AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244) at org。 (DefaultWebDriver.java:131) at org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:144) at io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:38 ) at io.appium.java_client.AppiumDriver。(AppiumDriver.java :88) at io.appium.java_client.AppiumDriver。(AppiumDriver.java:112) at io.appium.java_client.android.AndroidDriver。(AndroidDriver.java:73) at appiumproject.StartApplication.main(StartApplication.java :29)

} 

回答

0

在下面的功能中,您需要提及路徑。apk文件

capabilities.setCapability("app", app.getAbsolutePath()); 

應該象下面這樣:

capabilities.setCapability("app","path of apk file"); 
+0

我只是嘗試這樣做capabilities.setCapability( 「應用程序」, 「/ SD卡/安卓/數據/」);仍然是相同的錯誤,@SaiPawan –

+0

在末尾添加.apk文件名稱,如「/sdcard/Android/data/sample.apk」 – SaiPawan

+0

或者在桌面上保留該apk文件並給出該路徑 – SaiPawan

相關問題