web-dev-qa-db-ja.com

タイプAppiumDriverをインスタンス化できません

プロジェクトのビルドパスに次のjarを追加しました。

  1. Java-client-2.0.0 from http://appium.io/downloads.html >> Appiumクライアントライブラリ>> Java
  2. Selenium-Java-2.43.1
  3. Selenium-Java-2.43.1-srcs
  4. Selenium-サーバー-スタンドアロン-2.43.1
    そしてこれが私のコードです:

    public class SampleApp{
    
    WebDriver dr;
    
    @Test
    public void testApp() throws MalformedURLException, InterruptedException {
        String apkpath = "D:\\apkdump\\sampleapp.apk";
        File app = new File (apkpath);
        DesiredCapabilities capabilities= new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.BROWSER_NAME,"");
        capabilities.setCapability("deviceName","TestADB18");
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("app",app.getAbsolutePath());
        capabilities.setCapability("appPackage", "com.test");
        capabilities.setCapability("appActivity", "com.sampleapp.Main");
        dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
        dr.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    
    }
    
    
    }
    

    new AppiumDriverの下にCannot instantiate the type AppiumDriverという赤い線が表示されます。ここで、すべてのSelenium jarsを削除するとエラーは消えますが、Webdriverでエラーを解決できません。

    jar間の競合は何ですか?

    同様の質問を見ました ここ しかし、それはコードを実行でき、Null pointer exceptionを取得していましたが、私の場合は実行すらできず、コードの保存で実行されます。次に、の回答がAppiumDriverを使用せずに投稿されました

7
paul

このエラーは、Appium Client(私の質問のステップ1を参照)を最新のものからJava-client-1.5.0にダウングレードすることで修正できます。残りの瓶は最新の状態に保つことができます。

Appium Clientのダウングレードバージョンはここからダウンロードできます http://mvnrepository.com/artifact/io.appium/Java-client/1.5.

1
paul

ダウングレードなどする必要はありません。 Javaクライアントバージョン2.0.0で、 site :に記載されているように、設計が変更されています。

AppiumDriverは抽象クラスになりました。どちらも拡張するIOSDriverとAndroidDriverを使用してください。

したがって、ドライバーラインを次のように変更するだけです。

dr = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

お役に立てば幸いです...

23
Hassan Radi
WebDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),getDesiredCapabilities("192.21.168.56:5555"));

これを使って。とインポート:

import io.appium.Java_client.AppiumDriver;
import io.appium.Java_client.Android.AndroidDriver;

dr = new AppiumDriver(new URL( " http://127.0.0.1:4723/wd/hub ")、capabilities);

確立する適切なURL

0
Guru

appiumバージョン1.7の場合、capability cap.setCapability(MobileCapabilityType.AUTOMATION_NAME、 "uiautomator2");を使用します。

v1.8.1の場合は不要です

0
Manish Patil