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

使用Appium Java在iOS真机启动应用遇SessionNotCreatedException求助

解决Appium + Selenium 4.25.0启动iOS真机时的SessionNotCreatedException问题

问题核心

报错提示Illegal key values seen in w3c capabilities: [automationName, bundleId, derivedDataPath, deviceName, platformVersion, udid, usePrebuiltWDA],原因是Selenium 4.25.0开始严格校验W3C规范外的Capabilities,所有Appium专属的配置项必须添加appium:前缀,否则会被判定为非法键。

解决方案

方法1:手动为Appium专属Capabilities添加appium:前缀

修改你的Capabilities配置代码,给所有非W3C标准的字段加上前缀:

import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.ios.IOSDriver;
import java.net.URL;

public class LaunchIosApp {
    public static void main(String[] args) throws Exception {
        DesiredCapabilities caps = new DesiredCapabilities();
        // W3C标准字段无需前缀
        caps.setCapability("platformName", "IOS");
        // Appium专属字段必须添加appium:前缀
        caps.setCapability("appium:automationName", "XCUITest");
        caps.setCapability("appium:bundleId", "com.patientsafesolutions.pa...");
        caps.setCapability("appium:derivedDataPath", "/Users/deekshasharma/Deskto...");
        caps.setCapability("appium:deviceName", "iPhone15");
        caps.setCapability("appium:platformVersion", "17.5.1");
        caps.setCapability("appium:udid", "00008120-00145D182E10A01E");
        caps.setCapability("appium:usePrebuiltWDA", true);

        IOSDriver driver = new IOSDriver(new URL("http://localhost:4723/wd/hub"), caps);
        // 后续操作...
        driver.quit();
    }
}

方法2:使用AppiumOptions子类(推荐)

Appium提供了IOSOptions类(继承自AppiumOptions),会自动为专属配置项添加appium:前缀,无需手动处理:

import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.ios.options.IOSOptions;
import java.net.URL;

public class LaunchIosApp {
    public static void main(String[] args) throws Exception {
        IOSOptions options = new IOSOptions();
        options.setPlatformName("IOS");
        options.setAutomationName("XCUITest");
        options.setBundleId("com.patientsafesolutions.pa...");
        options.setDerivedDataPath("/Users/deekshasharma/Deskto...");
        options.setDeviceName("iPhone15");
        options.setPlatformVersion("17.5.1");
        options.setUdid("00008120-00145D182E10A01E");
        options.setUsePrebuiltWDA(true);

        IOSDriver driver = new IOSDriver(new URL("http://localhost:4723/wd/hub"), options);
        // 后续操作...
        driver.quit();
    }
}

额外检查点

  • 确保Appium Java Client版本与Selenium版本兼容:Appium Java Client 9.x+适配Selenium 4.x系列,若版本不匹配可能出现其他兼容性问题。
  • 确认Appium服务已正常启动,且真机连接无误(udid正确、设备已信任Mac、WDA已正确部署)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:41