如何在 Java 中使用 nodeJs 停止 Appium 服务器
Posted
技术标签:
【中文标题】如何在 Java 中使用 nodeJs 停止 Appium 服务器【英文标题】:How to stop Appium server using nodeJs in Java 【发布时间】:2022-01-24 06:16:57 【问题描述】:我正在尝试以编程方式启动和停止 Appium 服务器。
我的系统中安装了 nodeJS。
为了启动服务器,我在批处理文件中使用“appium”命令并使用 Java 运行该批处理文件。
停止服务器:
Runtime runtime = Runtime.getRuntime();
runtime.exec("taskkill /F /IM node.exe");
但是通过使用 taskKill 服务器并没有杀死。
请建议我可以停止正在运行的 Appium 服务器的任何方法。
【问题讨论】:
我不知道appium。但是适当的服务器有一个记录在案的关闭例程(例如发送信号、连接特定端口等)。也许在文档中查找。但是您已经提到它是 nodejs 软件,所以在这里可能期望过高。但请记住,终止进程可能不会优雅地终止软件(将未保存的数据写入磁盘等) 【参考方案1】:您可以通过两种方式启动和停止appium服务器,
-
通过使用启动和停止服务器作为 java 方法,
private AppiumDriver<?> driver;
private AppiumDriverLocalService appiumDriverLocalService;
private static final String NODE_FILE_PATH = "/usr/local/bin/node";
private static final String APPIUM_FILE_PATH = "/usr/local/bin/appium";
public void startAppiumServer()
Map<String, String> environment = new HashMap();
environment.put("PATH", "/usr/local/bin:" + System.getenv("PATH"));
AppiumServiceBuilder appiumServiceBuilder = new AppiumServiceBuilder();
appiumServiceBuilder.usingAnyFreePort();
appiumServiceBuilder.usingDriverExecutable(new File(NODE_FILE_PATH));
appiumServiceBuilder.withAppiumJS(new File(APPIUM_FILE_PATH));
appiumServiceBuilder.withEnvironment(environment);
appiumDriverLocalService = AppiumDriverLocalService.buildService(appiumServiceBuilder);
appiumDriverLocalService.start();
public void stopAppiumServer()
appiumDriverLocalService.stop();
-
而且,如果你想用 shell 命令杀死 appium 服务器线程,你可以使用如下,
sudo kill $(ps aux | grep -i appium | awk 'print $2')
【讨论】:
以上是关于如何在 Java 中使用 nodeJs 停止 Appium 服务器的主要内容,如果未能解决你的问题,请参考以下文章
是否可以通过其 Sidecar Java Spring 服务启动/停止 Falcor (NodeJS) 应用程序?