【发布时间】:2018-10-14 06:02:53
【问题描述】:
我有一个大约九个月前创建的 Appium 测试项目,并且运行良好。从那时起,我就尝试再次处理该项目,并且该项目有效,但前提是我手动启动 Appium(使用桌面应用程序)。该项目检查服务器是否已经在运行,如果没有,则使用以下服务逻辑启动它:
public class AppiumServer {
AppiumDriverLocalService service = null;
public void InitAppiumServer() {
System.out.println("Creating Appium Service . . .");
service = AppiumDriverLocalService.buildDefaultService();
System.out.println("Appium Service created. URL: '" + service.getUrl().toString() + "'");
}
public void startServer() {
System.out.println("Starting Appium Service . . .");
service.start();
System.out.println("Appium Service started.");
}
未手动启动 Appium 时的输出结果如下:
创建 Appium 服务。 . . Appium 服务已创建。网址: 'http://0.0.0.0:4723/wd/hub' 正在检查端口 4723 上的 Appium 服务 . . .未检测到先前的 Appium 服务。启动 Appium 服务。 . . io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: 本地 appium 服务器尚未启动。给定的 Node.js 可执行文件:C:\Program Files\nodejs\node.exe 参数: [C:\Users\m1033792\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 4723, --address, 0.0.0.0]
如果我打开命令提示符并手动运行该命令行,它也可以工作,只是不使用我一直使用的标准方法,并且从研究中可以看出,大多数其他人都在使用。我似乎也不是唯一遇到这个特殊问题的人,因为我看到它在网络上发布了很多地方,但没有任何回应。
我的 nodejs 是 5.6.0 版本 Appium(通过 nvm 安装)是 1.8 Java 是 1.8.0_144 Maven 是 3.5.4
【问题讨论】:
-
您好,您可以从 AppiumDriverLocalService.buildDefaultService() 发布代码吗?我们知道 Appium 的工作原理是手动运行命令,因此它可能是代码中的内容。
-
感谢您的回复,但没有可发布的代码。它来自一个导入的库:
io.appium.java_client.service.local.AppiumDriverLocalService -
嗯,我们使用的是哪个 java 客户端版本的 appium?我看到他们在 3.3.0 版本中做了一些补丁。另外,我从 java 客户端的文档github.com/appium/java-client/blob/… 中发现了这一点,听起来可能发生的事情是 java 程序中的命令使用了不同的 node.js 可执行文件
-
我以为我有最新的稳定版本,但它是 5.0.0。我用 5.0.4 更新了 pom.xml 并再次尝试了相同的结果。如果一切都失败了,我可能会尝试 beta 6 版本。我也遇到了您链接到的页面,但我不确定另一个 node.exe 的位置。接下来会研究。