在 Windows 机器中以编程方式启动 appium 服务器

Pra*_*h.G 0 selenium-webdriver appium

到目前为止,我正在使用 Windows 8.1 并使用 appium 1.4.16,我想升级 appium,所以我只是从控制面板卸载了 1.4.16,然后安装了 node.js,然后使用安装了最新的 appium

npm install -g appium
Run Code Online (Sandbox Code Playgroud)

当我跑步时

appium -v
Run Code Online (Sandbox Code Playgroud)

它显示我 1.6.4 到目前为止没有问题。之后,在我的 Maven 项目中,我想以编程方式启动 appium 服务器,但 appium 未保存在

C:/Program Files or C:/ProgramFile(x86)

如何以编程方式启动appium服务器?

我正在使用下面的代码来运行appium

Process p = Runtime.getRuntime().exec("\"C:/Program Files/Appium/node.exe\" \"C:/Program Files/Appium/node_modules/appium/bin/Appium.js\" --full-reset --local-timezone");
Run Code Online (Sandbox Code Playgroud)

小智 5

有 3 种方法可以实现该场景。1)使用AppiumDriverLocalService

 public void startServer() {
//Set Capabilities
cap = new DesiredCapabilities();
cap.setCapability("noReset", "false");

//Build the Appium service
builder = new AppiumServiceBuilder();
builder.withIPAddress("127.0.0.1");
builder.usingPort(4723);
builder.withCapabilities(cap);
builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
builder.withArgument(GeneralServerFlag.LOG_LEVEL,"error");

//Start the server with the builder
service = AppiumDriverLocalService.buildService(builder);
service.start();
}

public void stopServer() {
service.stop();
}
Run Code Online (Sandbox Code Playgroud)

2)将 Appium.js 与 Node.exe 一起使用

  public void startServer() {
CommandLine cmd = new CommandLine("C:\\Program Files (x86)\\Appium\\node.exe");
cmd.addArgument("C:\\Program Files (x86)\\Appium\\node_modules\\appium\\bin\\Appium.js");
cmd.addArgument("--address");
cmd.addArgument("127.0.0.1");
cmd.addArgument("--port");
cmd.addArgument("4723");

DefaultExecuteResultHandler handler = new DefaultExecuteResultHandler();
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(1);
try {
    executor.execute(cmd, handler);
    Thread.sleep(10000);
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}
}

public void stopServer() {
Runtime runtime = Runtime.getRuntime();
try {
    runtime.exec("taskkill /F /IM node.exe");
} catch (IOException e) {
    e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)

3)使用命令提示符启动Appium服务器

public void startServer() {
Runtime runtime = Runtime.getRuntime();
try {
    runtime.exec("cmd.exe /c start cmd.exe /k \"appium -a 127.0.0.1 -p 4723 --session-override -dc \"{\"\"noReset\"\": \"\"false\"\"}\"\"");
    Thread.sleep(10000);
} catch (IOException | InterruptedException e) {
    e.printStackTrace();
}
}
public void stopServer() {
Runtime runtime = Runtime.getRuntime();
try {
    runtime.exec("taskkill /F /IM node.exe");
    runtime.exec("taskkill /F /IM cmd.exe");
} catch (IOException e) {
    e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)


我发现它很有帮助。希望它有帮助。来源:http ://www.automationtestinghub.com/3-ways-to-start-appium-server-from-java/