卸载Appium v1.22安装v2.0.0后自动化测试启动报错求助
解决Appium v2.0.0路径不匹配导致的InvalidServerInstanceException异常
原因分析
问题出在Java客户端的AppiumServiceBuilder默认沿用了Appium v1.x的安装路径(/usr/local/lib/node_modules/appium/build/lib/main.js),但你通过Homebrew安装的Appium v2.0.0实际主脚本路径是/opt/homebrew/lib/node_modules/appium/build/lib/main.js,路径不匹配触发了异常。
解决方案
方法1:手动指定Appium主脚本路径
在初始化Appium服务时,通过withAppiumJS()方法明确传入正确的脚本路径:
import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; import java.io.File; public class AppiumServiceSetup { public static AppiumDriverLocalService startAppiumService() { File appiumJS = new File("/opt/homebrew/lib/node_modules/appium/build/lib/main.js"); AppiumDriverLocalService service = new AppiumServiceBuilder() .withAppiumJS(appiumJS) // 可按需添加端口、日志路径等其他配置 .build(); service.start(); return service; } }
方法2:用软链接统一路径
如果不想修改代码,可通过软链接将新路径映射到客户端默认查找的旧路径:
打开终端执行命令:
sudo ln -s /opt/homebrew/lib/node_modules/appium /usr/local/lib/node_modules/appium
执行后,客户端默认路径会自动指向实际的Appium安装目录。
方法3:指定Appium CLI路径
先确认Appium CLI的实际路径:
which appium
若输出为/opt/homebrew/bin/appium,可在AppiumServiceBuilder中指定CLI路径,客户端会自动识别对应主脚本:
File appiumExecutable = new File("/opt/homebrew/bin/appium"); AppiumDriverLocalService service = new AppiumServiceBuilder() .usingDriverExecutable(appiumExecutable) .build(); service.start();
验证步骤
- 启动Appium服务,核对日志确认路径正确
- 运行自动化测试,检查是否仍抛出
InvalidServerInstanceException异常
内容的提问来源于stack exchange,提问作者Pauline
相关产品推荐
相关产品推荐

