Запуск службы Appium программно завершается с ошибкой - PullRequest
0 голосов
/ 03 мая 2018

У меня есть тестовый проект Appium, который был создан около девяти месяцев назад и работал нормально. С тех пор я попытался снова поработать над этим проектом, и проект заработал, но только если я запустил Appium вручную (с настольным приложением). Проект проверяет, запущен ли сервер, и запускает ли он его, используя приведенную ниже служебную логику:

public class AppiumServer {

    AppiumDriverLocalService service = null;

    public void InitAppiumServer() {

        System.out.println("Creating Appium Service . . .");
        service = AppiumDriverLocalService.buildDefaultService();
        System.out.println("Appium Service created.  URL: '" + service.getUrl().toString() + "'");

    }

    public void startServer() {

        System.out.println("Starting Appium Service . . .");
        service.start();
        System.out.println("Appium Service started.");

    }

Результирующий вывод, когда Appium не запускается вручную, ниже:

Создание службы Appium. , , Служба Appium создана. URL: 'http://0.0.0.0:4723/wd/hub' Проверка службы Appium на порту 4723 , , , Предварительная служба Appium не обнаружена. Запуск службы Appium. , , io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: Локальный сервер appium не был запущен. Данный Node.js исполняемый файл: C: \ Program Files \ nodejs \ node.exe Аргументы: [C: \ Users \ m1033792 \ AppData \ Roaming \ НПМ \ node_modules \ appium \ построить \ Lib \ main.js, --port, 4723, --адрес, 0.0.0.0]

Если я открою командную строку и запусту эту командную строку вручную, она также будет работать, просто не используя стандартный метод, который я использовал, и из исследований видно, что большинство других используют. Я также, кажется, не единственный человек с этой конкретной проблемой, так как я вижу, что он опубликовал много мест в Интернете, но без ответов.

Мой nodejs - версия 5.6.0 Appium (через nvm установить) - 1.8 Ява 1.8.0_144 Maven составляет 3,5,4

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Если проблема не устранена, попробуйте приведенный ниже фрагмент, он будет отлично работать.

статический AppiumDriverLocalService appium;

public static void start() throws IOException {
    AppiumServiceBuilder builder = new AppiumServiceBuilder()
            .withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js"))
            .withArgument(GeneralServerFlag.SESSION_OVERRIDE)
            .withLogFile(new File(System.getProperty("user.dir") + "/appiumServerLog.txt"));
    appium = builder.build();
    System.out.println("Starting the Appium Server on 127.0.0.1:4723");
    appium.start();
}
0 голосов
/ 08 мая 2018

После обширных исследований и проб и ошибок я углубился в трассировку стека и заметил, что она ссылается на:

com.google.common.util.concurrent.SimpleTimeLimiter.create (Ljava / Util / параллельный / ExecutorService;) Lcom / Google / общее / Util / параллельный / SimpleTimeLimiter

Поскольку "не существует" Дальнейшие исследования показали, что у других были те же проблемы с другими службами, не обязательно с Appium Server, и он был привязан к моей гуаве с версией 21.0 вместо 23.0.

Как только я обновил этот параметр в своем файле pom.xml, проект снова запустился без ошибок.

Это я за то, что не опубликовал трассировку -entire-stack в моем вопросе. Урок усвоен.

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