プロジェクトのビルドパスに次のjarを追加しました。
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
を使用せずに投稿されました
このエラーは、Appium Client
(私の質問のステップ1を参照)を最新のものからJava-client-1.5.0
にダウングレードすることで修正できます。残りの瓶は最新の状態に保つことができます。
Appium Client
のダウングレードバージョンはここからダウンロードできます http://mvnrepository.com/artifact/io.appium/Java-client/1.5.
ダウングレードなどする必要はありません。 Javaクライアントバージョン2.0.0で、 site :に記載されているように、設計が変更されています。
AppiumDriverは抽象クラスになりました。どちらも拡張するIOSDriverとAndroidDriverを使用してください。
したがって、ドライバーラインを次のように変更するだけです。
dr = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
お役に立てば幸いです...
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
appiumバージョン1.7の場合、capability cap.setCapability(MobileCapabilityType.AUTOMATION_NAME、 "uiautomator2");を使用します。
v1.8.1の場合は不要です