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

Appium无法启动新会话:iOS模拟器Java测试代码执行异常求助

问题分析与解决方案

你遇到的Could not start a new session错误,结合Appium Inspector能正常工作的情况,说明Appium服务本身是正常的,问题大概率出在代码配置细节或环境兼容性上,以下是具体排查方向和解决办法:

1. 修复Appium服务端点路径

Appium 2.x版本的默认会话端点是http://127.0.0.1:4723/wd/hub,你的代码里只写了http://127.0.0.1:4723,缺少了/wd/hub后缀——Appium Inspector会自动补全这个路径,所以能正常连接,但代码里没加就会导致会话创建失败。

修改代码中的URL部分:

driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

2. 检查版本兼容性

  • Appium Java客户端与服务器版本匹配:如果你的Appium服务器是2.x版本,必须使用8.x及以上的Java客户端依赖。如果用的是旧版客户端(比如7.x),会存在兼容性问题。
    比如在Maven中更新依赖:
    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>8.6.0</version> <!-- 替换为最新稳定版 -->
    </dependency>
    
  • 确认XCUITest驱动已安装:Appium 2.x需要手动安装驱动,执行以下命令确保XCUITest驱动已正确安装:
    appium driver install xcuitest
    

3. 验证模拟器状态与配置

  • 确认UDID与模拟器匹配:用xcrun simctl list命令查看本地所有模拟器的UDID,确保代码中填写的UDID确实存在,且对应的模拟器处于启动状态。如果模拟器未启动,Appium无法建立连接。
  • 检查deviceName准确性:模拟器的名称需要和xcrun simctl list中显示的完全一致,比如可能是iPhone 15 (iOS 17.0)而非单纯的iPhone 15,修改代码中的deviceName参数匹配实际名称。
  • 添加platformVersion参数:明确指定模拟器的iOS版本,避免设备匹配失败:
    capabilities.setCapability("platformVersion", "17.0"); // 替换为你的模拟器iOS版本
    

4. 优化Desired Capabilities配置

DesiredCapabilities类已被Selenium弃用,建议改用MutableCapabilities,虽然不是直接报错原因,但能避免一些隐性兼容性问题:

import org.openqa.selenium.MutableCapabilities;

// 替换原有的DesiredCapabilities声明
MutableCapabilities capabilities = new MutableCapabilities();
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("deviceName", "iPhone 15");
capabilities.setCapability("browserName", "Safari");
capabilities.setCapability("udid", "69383FAA-13AA-451D-80F1-03F765C414C9");
capabilities.setCapability("automationName", "XCUITest");

5. 排查端口与服务启动参数

  • 检查端口占用:用lsof -i :4723(Mac)或netstat -ano | findstr :4723(Windows)确认4723端口是否被其他程序占用,如果是,更换端口(比如4724),同时修改代码中的URL和Appium启动命令。
  • 确保Appium服务启动正常:启动Appium服务时查看控制台输出,确认没有报错。如果是Safari测试,建议添加自动下载WebDriverAgent的参数:
    appium --allow-insecure=chromedriver_autodownload
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:27:34