Поэтому я использую приведенный ниже код, чтобы попытаться запустить сервер 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();
}
}