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

已解决Selenium ContextAware错误,Appium iOS Safari会话启动失败

问题背景

之前遇到依赖错误:

cannot access org.openqa.selenium.ContextAware  
class file for org.openqa.selenium.ContextAware not found

更新以下Maven依赖后,iOS和Android自动化的基础问题得到解决:

<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>9.5.0</version>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-api</artifactId>
    <version>4.23.0</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-remote-driver</artifactId>
    <version>4.23.0</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-support</artifactId>
    <version>4.23.0</version>
</dependency>

但运行Safari浏览器测试时(配置代码如下),出现会话启动失败错误:

capabilities.setCapability("appium:udid", udid);
capabilities.setCapability("appium:deviceName", "iPhone 15");
capabilities.setCapability("appium:automationName", "XCUITest");
capabilities.setCapability("platformName", platformName);
capabilities.setCapability("appium:platformVersion", OSVersion);
capabilities.setCapability("browserName", browserName);
capabilities.setCapability("appium:ensureWebviewsHavePages", true);
capabilities.setCapability("appium:useNewWDA", false);
capabilities.setCapability("appium:includeSafariInWebviews", true);
capabilities.setCapability("autoAcceptAlerts", true);
capabilities.setCapability("wdaLocalPort", wdaPort);

URL url = new URL("http://" + IP + ":" + port + "/wd/hub");
driver = new IOSDriver(url, capabilities);
setDriver(driver);

错误信息:

Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Host info: host: 'INSUPMACQASRAPOLU.local', ip: '2409:40f0:d:f00f:8d73:e328:3235:5e2a%en0'
排查方向
  • 检查Appium服务状态:确认Appium服务器正常启动,端口与代码中port一致。可以用浏览器访问http://IP:port/wd/hub/status,看是否返回正常JSON响应;或用telnet IP port测试端口连通性。
  • 核对UDID与设备:用xcrun simctl list devices(模拟器)或idevice_id -l(真机)确认udid是否正确匹配目标iPhone 15。
  • 排查WDA端口冲突:用lsof -i :wdaPort检查指定的wdaLocalPort是否被其他进程占用,换一个未被占用的端口重试。
  • 修正Capability参数:
    • autoAcceptAlerts需添加appium:前缀,改为appium:autoAcceptAlerts,否则XCUITest无法识别该参数;
    • 确认browserName设置为小写的safari,Appium对该参数大小写敏感。
  • 检查Safari配置:
    • 真机:开启设备上的Web检查器(设置> Safari> 高级> Web检查器),并信任电脑的开发者证书;
    • 模拟器:确认Safari应用正常安装,且模拟器系统版本与platformVersion一致。
  • 版本兼容性验证:确保Appium服务器版本与java-client 9.5.0兼容,建议使用Appium 2.x最新稳定版,避免版本不匹配导致会话建立失败。
  • 网络与权限检查:如果是远程设备,确认IP可达、防火墙未拦截Appium端口;本地设备优先用localhost或127.0.0.1代替外部IP测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:20:03