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

升级后Appium + XCUITest无法识别iOS原生元素

问题解决思路:升级后Appium Inspector无法识别iOS原生组件
  • 检查XCUITestDriver权限配置

    • 打开Xcode,进入Window > Devices and Simulators,选中目标iOS设备,右键选择Show Provisioning Profiles,确认测试用的Provisioning Profile包含com.apple.developer.automation权限
    • 进入iOS设备设置 > 隐私与安全性 > 自动化,找到对应测试应用,开启自动化权限
  • 调整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完成自动配置
  • 验证基础会话功能

    • 运行简单代码片段测试原生控件定位,确认问题是否出在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的会话配置后重试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:29:52