You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过编程方式启动Appium服务器问题求助

Appium Service Builder启动服务器失败的排查方案

错误信息

io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\Program Files\nodejs\node.exe Arguments: [C:\Users[username]\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 4723, --address, 127.0.0.1]

at io.appium.java_client.service.local.AppiumDriverLocalService.start(AppiumDriverLocalService.java:191)

相关代码

package MahiyarAutomation;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.options.UiAutomator2Options;
import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;

public class AppiumBasics {

    @Test
    public void AppiumTest() throws MalformedURLException
    {
        AppiumDriverLocalService service = new AppiumServiceBuilder().withAppiumJS(new File("C:\\Users\\mahiyarwadia\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js"))
        .withIPAddress("127.0.0.1").usingPort(4723).build();
        service.start();        
                
        UiAutomator2Options options = new UiAutomator2Options();
        options.setDeviceName ("MahiyarPhone");
        options.setApp ("//Users//mahiyarwadia//eclipse-workspace//Appium//src//test//java//resources//ApiDemos-debug.apk");
    }
}

排查与解决步骤

1. 验证Node.js和Appium路径有效性

  • 手动检查C:\Program Files\nodejs\node.exe是否存在,打开命令行执行该路径,确认Node.js能正常启动。
  • 检查C:\Users\mahiyarwadia\AppData\Roaming\npm\node_modules\appium\build\lib\main.js文件是否存在。如果是Appium 2.x版本,main.js可能位于node_modules/appium/lib/main.js(无build目录),需调整路径。
  • 直接用命令行运行Appium启动命令,验证是否能正常启动:
    "C:\Program Files\nodejs\node.exe" "C:\Users\mahiyarwadia\AppData\Roaming\npm\node_modules\appium\build\lib\main.js" --port 4723
    
    如果命令行启动失败,根据报错信息修复Appium安装或路径问题;如果能启动,说明代码配置存在问题。

2. 检查端口占用情况

4723端口可能被其他程序占用,执行以下命令排查:

netstat -ano | findstr :4723

如果有结果,记录PID后打开任务管理器结束对应进程,或者修改代码中的端口号(比如usingPort(4724))。

3. 解决权限问题

右键点击IDE(如Eclipse),选择以管理员身份运行,避免因权限不足导致无法启动服务器。

4. 简化Service Builder配置

如果Appium已全局安装且加入系统PATH,可尝试自动查找Appium路径,去掉withAppiumJS()配置:

AppiumDriverLocalService service = new AppiumServiceBuilder()
    .withIPAddress("127.0.0.1")
    .usingPort(4723)
    .build();

5. 验证Appium全局安装状态

打开命令行执行appium -v,确认Appium能正常运行且版本正确。如果命令行运行Appium正常,但代码启动失败,重点检查代码中的路径配置。

额外提示

代码中App路径使用//Users//...是类Unix系统格式,若你使用Windows系统,需修改为Windows路径格式,比如:

options.setApp("C:\\Users\\mahiyarwadia\\eclipse-workspace\\Appium\\src\\test\\java\\resources\\ApiDemos-debug.apk");

内容的提问来源于stack exchange,提问作者Mahiyar Wadia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:20:37