执行Appium自动化脚本时出现NullPointerException错误求助
解决Appium启动时的NullPointerException:Cannot invoke "org.openqa.selenium.os.CommandLine.isRunning()"
这个错误的核心是AppiumDriverLocalService在启动流程中,内部的process对象未完成初始化就被调用了isRunning()方法,通常由服务配置不当或依赖问题引发,以下是具体解决方法:
检查Appium服务配置完整性
确保构建AppiumDriverLocalService时,正确指定了Appium核心文件路径,或保证环境变量能直接找到Appium命令。示例配置代码:AppiumDriverLocalService service = new AppiumServiceBuilder() .withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js")) // 替换为你的实际路径 .withIPAddress("127.0.0.1") .usingPort(4723) .build(); service.start();排查服务实例初始化问题
检查BaseTest类的ConfigureAppium方法,确认调用start()前service实例已正确创建,避免出现service为null的情况;同时不要在服务未启动时调用销毁相关方法,也不要重复启动已运行的服务。验证依赖版本兼容性
当前TestNG版本为7.4.0,需确认Appium Java Client版本与Selenium版本匹配(如Appium Java Client 8.x需搭配Selenium 4.x),版本不兼容可能导致内部对象初始化异常。改用手动启动Appium服务
如果自动启动服务始终有问题,可直接在终端执行appium命令手动启动服务,代码中跳过service.start()步骤,直接连接已运行的服务:DesiredCapabilities caps = new DesiredCapabilities(); // 配置你的测试设备与应用参数 AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
内容的提问来源于stack exchange,提问作者TheDhanraj
相关产品推荐
相关产品推荐

