Запуск сервера Appium программно - PullRequest
0 голосов
/ 27 апреля 2018

Поэтому я использую приведенный ниже код, чтобы попытаться запустить сервер Appium автоматически, но при получении соединения отказано: ошибка подключения. Я использую Maven с Testng

Журналы:

СБОЙ КОНФИГУРАЦИИ: возможности @BeforeTest org.openqa.selenium.WebDriverException: соединение отказано: соединение Информация о сборке: версия: '3.10.0', ревизия: '176b4a9', время: '2018-03-02T19: 03: 16.397Z' Системная информация: хост: 'MEL01-ULPT027', ip: '172.24.80.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10 .0 ', java.version:' 1.8 .0_152' Информация о драйвере: driver.version: AndroidDriver в io.appium.java_client.remote.AppiumCommandExecutor.lambda $ 2 (AppiumCommandExecutor.java:141) at java.util.Optional.orElseGet (Неизвестный источник) в io.appium.java_client.remote.AppiumCommandExecutor.execute (AppiumCommandExecutor.java:140) в org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:601) в io.appium.java_client.DefaultGenericMobileDriver.execute (DefaultGenericMobileDriver.java:42) в io.appium.java_client.AppiumDriver.execute (AppiumDriver.java:1) на io.appium.java_client.android.AndroidDriver.execute (AndroidDriver.java:1) в org.openqa.selenium.remote.RemoteWebDriver.startSession (RemoteWebDriver.java:219) в org.openqa.selenium.remote.RemoteWebDriver. (RemoteWebDriver.java:142) в io.appium.java_client.DefaultGenericMobileDriver. (DefaultGenericMobileDriver.java:38)

Код:

public class Startup {


 RemoteWebDriver driver = null;

    public void startAppiumServer() throws IOException, InterruptedException {   

        CommandLine command = new CommandLine("cmd");
        command.addArgument("/c");

        command.addArgument("C:\\Program Files (x86)\\Appium\\node.exe");  
        command.addArgument("C:\\Program Files (x86)\\Appium\\node_modules\\appium\\lib\\appium.js");  
        command.addArgument("--address", false);  
        command.addArgument("127.0.0.1");  
        command.addArgument("--port", false);  
        command.addArgument("4723");  
        command.addArgument("--full-reset", false);
        command.addArgument("--bootstrap-port",false);
        command.addArgument("4724",false);
        command.addArgument("--selendroid-port",false);
        command.addArgument("8082",false);

        DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();  
        DefaultExecutor executor = new DefaultExecutor();  
        // executor.setExitValue(1);

        InputStream is = new InputStream() {

            public int read() throws IOException {
                return 0;
            }

        };
        executor.getStreamHandler().setProcessOutputStream(is);
        try {
        executor.execute(command, resultHandler);
        for (int i=1; i<10; i++) {
            int nRead = is.read();
            if(nRead!=0)
                break;
            Thread.sleep(5000);
            }
        }catch (IOException e) {
               e.printStackTrace();
        }catch (InterruptedException e) {
               e.printStackTrace();
        }
   }

1 Ответ

0 голосов
/ 02 мая 2018

Я предлагаю не запускать Appium из командной строки, ваш код не будет работать в Linux или других ОС. Так что используйте AppiumDriverLocalService для запуска сервера. Вы можете найти здесь полезных способов запуска вашего сервера.

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