已解决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
相关产品推荐
相关产品推荐

