2017-04-10 22 views
0

私はEclipseでこのJavaコードを実行しようとしています.APiumを使用してAppiumと実際のデバイスを使って接続しています。私はデバイスにインストールされているアプリのためにデバイスにテストを行うことができません。実際のデバイスで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コンソールで取得しているエラーです。誰かが私にエラーの理由を教えてもらえますか?「悪いアプリ」 アンドロイドデバイスからappActivityというアプリのclassPathRootを与えるにはどうすればよいですか?
}スレッド "main"の例外org.openqa.selenium.SessionNotCreatedException:新しいセッションを作成できませんでした。 (元のエラー:不正なアプリケーション:C:\ Users \ admin \ workspace \ AppiumProject \ sdcard \ Android \ data \ com.alensw.PicFolder。アプリケーションパスは、絶対パスかappiumサーバーのインストールディレクトリからの相対パスか、原因:エラー:ローカルアプリケーションを使用していますが、.zip、.ipa、または.apkで終わらない(警告:サーバーはスタックトレース情報を提供しませんでした) コマンドの継続時間またはタイムアウト: 0 milliseconds ビルドインフォメーション:バージョン: '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 sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) at sun.reflect.NativeConstructorAccessorImpl.newInst ANCE(不明なソース)sun.reflect.DelegatingConstructorAccessorImpl.newInstance(不明なソース)org.openqa.selenium.remote.ErrorHandler.createThrowableでjava.lang.reflect.Constructor.newInstance(不明なソース) で (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でio.appium.java_client.remote.AppiumCommandExecutor.executeでio.appium.java_client.remote.AppiumCommandExecutor.doExecute(AppiumCommandExecutor.java:111) で.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:75) (AppiumCommandExecutor.java :162)01 io.appium.java_client.AppiumDriver.executeでio.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) でorg.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) (ATAppiumDriver.java:1)ORGでorg.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244でio.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) で) 。 (RemoteWebDriver.java:144) (io.appium.java_client.DefaultGenericMobileDriver)(DefaultGenericMobileDriver.java:38)で開いています。 )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

私はちょうど( "アプリ"、 "/ SDカード/アンドロイド/データ/")このcapabilities.setCapabilityを試してみました。 @SaiPawan –

+0

「/sdcard/Android/data/sample.apk」 – SaiPawan

+0

のように最後に.apkファイル名を追加するか、そのapkファイルをデスクトップに保存してそのパスを指定します – SaiPawan

関連する問題