Nano Hash - криптовалюты, майнинг, программирование

Ошибка получения класса не найдена при запуске автоматизации на реальном устройстве в режиме selendroid

Я пытался запустить автоматизацию на appium 1.1.0, но не смог запустить автоматизацию из-за следующей ошибки. Я попытался запустить автоматизацию на реальном устройстве, используя режим selendroid на appium.

Ниже приведены шаги, которые я выполнил во время автоматизации:

  1. Запущен Selendroid сервер
  2. Запущен сервер Appium, который указывает на порт, на котором работает сервер selendroid.
  3. Запустил автоматизацию с помощью Maven

Селендроид сервер:

XXXXX+ 14000  2480  0 18:30 pts/0    00:00:01 java -jar /home/XXXXXX/Selendroid/selendroid-standalone-0.10.0-with-dependencies.jar -aut /home/XXXXX/Selendroid/en-android.apk -selendroidServerPort 9001

Аппиум сервер:

XXXXX+ 14001  2480  0 18:30 pts/0    00:00:01 node /home/XXXXXX/.linuxbrew/bin/appium -q -p 6001 -bp 4001 -U cff19ff1e200dbe --selendroid-port 9001

Автоматизация начала использовать Maven:

mvn clean install -Dappium_port=6001

Возможности приложения:

    private static String url = "http://localhost:"
            + System.getProperty("appium_port") + "/wd/hub";
    private AppiumDriver driver;
    private static DesiredCapabilities capabilities;

    public void setUpCapabilities() throws Exception {
        capabilities = new DesiredCapabilities();
        File app = new File("en-android.apk");
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("automationName", "Selendroid");
        capabilities.setCapability("app", app.getAbsolutePath());
        capabilities.setCapability("appActivity", ".gui.StartActivity");
        capabilities.setCapability("appPackage","test");     
    }

   public AppiumDriver automationInit() throws Exception {
        driver = new AppiumDriver(new URL(url), capabilities);
        return driver;
    }

Трассировки стека:

java.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:99)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:153)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:41)
    at test.utils.TestUtility.automationInit(TestUtility.java:40)

Пожалуйста, подскажите, как решить эту проблему? Что-то не так с возможностями appium при тестировании на реальных устройствах?

Спасибо,

Приянк Шах

04.06.2014

Ответы:


1

Я думаю, это связано с вашим импортом в проект. «org/apache/http/conn/SchemePortResolver» отсутствует в банке. Возможно, из-за того, что в appium это нужно. Я бы предложил переключиться на проект maven и сохранить pom.xml, который выглядит примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ProjectName</groupId>
<artifactId>ProjectName</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.42.1</version>
    </dependency>
    <dependency>
        <groupId>io.selendroid</groupId>
        <version>0.9.0</version>
        <artifactId>selendroid-standalone</artifactId>
    </dependency>
    <dependency>
        <groupId>io.selendroid</groupId>
        <version>0.9.0</version>
        <artifactId>selendroid-client</artifactId>
    </dependency>
    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.1</version>
    </dependency>
</dependencies>

</project>

После того, как вы правильно синхронизируете проект и разрешите maven импортировать банки, вы не должны видеть эти проблемы. IntelliJ выполняет большую часть работы и настоятельно рекомендует для этого использовать IDE.

11.06.2014
  • да, это правда .. Я добавил зависимости MAVEN для httpclient, которые, как мне кажется, не требовались в предыдущей версии appium .. 12.06.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..