升级后Appium + XCUITest无法识别iOS原生元素
问题解决思路:升级后Appium Inspector无法识别iOS原生组件
检查XCUITestDriver权限配置
- 打开Xcode,进入
Window > Devices and Simulators,选中目标iOS设备,右键选择Show Provisioning Profiles,确认测试用的Provisioning Profile包含com.apple.developer.automation权限 - 进入iOS设备
设置 > 隐私与安全性 > 自动化,找到对应测试应用,开启自动化权限
- 打开Xcode,进入
调整Appium会话Capabilities
- 添加或修改关键配置项,确保允许访问原生控件:
{ "platformName": "iOS", "appium:automationName": "XCUITest", "appium:shouldUseCompactResponses": false, "appium:allowInvisibleElements": true, "appium:autoAcceptAlerts": false } - 若需跨应用访问原生组件,可尝试移除
appium:bundleId配置,或确认其权限覆盖范围
- 添加或修改关键配置项,确保允许访问原生控件:
验证驱动版本兼容性
- 运行
appium driver list --installed确认已安装的XCUITestDriver版本 - 尝试降级驱动到7.25.x版本(该版本与Xcode 16兼容性反馈较好):
appium driver uninstall xcuitest && appium driver install xcuitest@7.25.0
- 运行
检查设备开发者模式
- 进入iOS设备
设置 > 隐私与安全性 > 开发者模式,开启后重启设备 - 在Xcode的
Devices and Simulators中移除设备后重新连接,等待Xcode完成自动配置
- 进入iOS设备
验证基础会话功能
- 运行简单代码片段测试原生控件定位,确认问题是否出在Appium Inspector本身:
from appium import webdriver caps = { "platformName": "iOS", "appium:deviceName": "你的设备名称", "appium:automationName": "XCUITest", "appium:bundleId": "目标应用Bundle ID" } driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) cancel_btn = driver.find_element_by_accessibility_id("Cancel") print(cancel_btn.text) driver.quit() - 若代码能成功定位控件,重置Appium Inspector的会话配置后重试
- 运行简单代码片段测试原生控件定位,确认问题是否出在Appium Inspector本身:
内容的提问来源于stack exchange,提问作者MilaLynx
相关产品推荐
相关产品推荐

