Невозможно инициализировать драйвер appium - PullRequest
0 голосов
/ 26 февраля 2019

Я не могу инициализировать драйвер appium.Пожалуйста, помогите.

При инициализации я получаю сообщение об ошибке ниже:

Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.remote.http.HttpClient$Factory.createDefault()Lorg/openqa/selenium/remote/http/HttpClient$Factory;
    at io.appium.java_client.remote.AppiumCommandExecutor.<init>(AppiumCommandExecutor.java:93)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:93)
    at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:95)
    at com.xceedance.framework.Hybrid.AppiumWebsite.main(AppiumWebsite.java:53)

Я использовал приведенный ниже код -

 AppiumDriver driver;
 DesiredCapabilities capability = new DesiredCapabilities();

 capability.setCapability("deviceName","emulator-5554");

 capability.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
 capability.setCapability("browserName","Chrome");

 capability.setCapability("platformName","Android");

 capability.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");

 capability.setCapability("appPackage","com.android.chrome");

 capability.setCapability("appActivity", "com.google.android.apps.chrome.Main");

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

Ответы [ 4 ]

0 голосов
/ 03 марта 2019

Основная причина заключается в том, что вы, скорее всего, скомпилировали класс для другой версии класса, в которой отсутствует метод, отличающийся от той, которую вы используете при его запуске.

Это явно упоминается в стекепроследить этот метод не существует.Если исключение появляется при вызове метода для объекта в библиотеке, вы, скорее всего, используете отдельные версии библиотеки при компиляции и запуске.Убедитесь, что у вас правильная версия в обоих местах.

Так что это проблема совместимости, а класс HttpClient.Factory принадлежит selenium Library, поэтому, пожалуйста, проверьте, совместима ли версия с селеном или нет

0 голосов
/ 26 февраля 2019

Вы создаете сеанс неправильно, вы можете прочитать Официальные документы Appium для настройки веб-тестирования.

Сначала убедитесь, что:

  • Chrome установлен наваше устройство или эмулятор.
  • Chromedriver установлен и совместим с версией Chrome на вашем устройстве. Проверьте здесь

Создайте сеанс следующим образом:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
AppiumDriver  driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capability);

Если вы получите сообщение об ошибке, например:

An unknown server-side error occurred while processing the command.
Original error: unknown error: Chrome version must be >= 55.0.2883.0

Затем повторно-установите appium с верной версией chromedriver:

npm install appium --chromedriver_version="your_version"
0 голосов
/ 02 марта 2019

Попробуйте следующий код:

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



    File fs = new File("src");  //Assume your aap is inside src folder.
    File appPath = new File(fs, "YourAppAPK.apk");

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("deviceName", "RealDeviceNameOrEmulatorName");
    caps.setCapability("app",appPath.getAbsolutePath());
    caps.setCapability("automationName","uiautomator2");
    caps.setCapability("platformName", "android");
    AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

    // Test Actions Here
     System.out.println("Android Driver Started: "+driver);
0 голосов
/ 26 февраля 2019

Похоже, проблема совместимости с appium / selenium.найдите последнюю версию и попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...