[英]How to stop and start Appium server programmatically using Java?
[英]How to start Appium server 2.0 Programmatically
我知道以编程方式启动 Appium 1.x 但无法为 Appium 2.0 执行此操作
AppiumServiceBuilder builder = new AppiumServiceBuilder();
builder.usingAnyFreePort();
builder.usingDriverExecutable(new File("<path to Node>\\node.exe"));
builder.withAppiumJS(new File("<path to Appium>\\appium"));
HashMap<String, String> environment = new HashMap();
environment.put("PATH", "/usr/local/bin:" + System.getenv("PATH"));
builder.withEnvironment(environment);
service = AppiumDriverLocalService.buildService(builder);
service.start();
使用以下命令安装 appium 2.0
npm install -g appium@next
确保系统环境变量中有 nodejs 的路径在用户变量中添加新的键 NODE_PATH 和 APPIUM_PATH
对于 NODE_PATH,将值设置为 C:\Program Files\nodejs\node.exe
对于 APPIUM_PATH,将值设置为 C:\Users<user_name>\AppData\Roaming\npm\node_modules\appium\node_modules.bin
您将下面一行代码添加到上面的 builder = new AppiumServiceBuilder().withArgument(() -> "--base-path", "/wd/hub").withArgument(() -> "--plugins", “图片”);
这是完整的代码
AppiumServiceBuilder builder;
builder = new AppiumServiceBuilder().withArgument(() -> "--base-path", "/wd/hub").withArgument(() -> "--plugins", "images");
builder.usingAnyFreePort();
builder.usingDriverExecutable(new File("C:\\Program Files\\nodejs\\node.exe"));
builder.withAppiumJS(new File("C:\\Users\\<user_name\\AppData\\Roaming\\npm\\node_modules\\appium"));
HashMap<String, String> environment = new HashMap();
environment.put("PATH", "/usr/local/bin:" + System.getenv("PATH"));
builder.withEnvironment(environment);
service = AppiumDriverLocalService.buildService(builder);
service.start();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("appium:platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("appium:automationName", "UiAutomator2");
capabilities.setCapability("app", "path_to_app\\app\\Learn_Android_With_Source_Code.apk");
androidDriver = new AndroidDriver<AndroidElement>(service.getUrl(), capabilities);
androidDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
return androidDriver;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.