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

XCUITests中如何点击跳转至其他应用后出现的「返回应用」按钮?

XCUITest中点击系统设置返回按钮的正确方式

这个返回按钮归属Preferences应用(系统设置),你之前的代码没生效,核心问题是按钮的标识符不是你用的"my-app",而是应用的显示名称(即用户在系统里看到的应用名称,比如"我的应用",而非bundle ID里的标识)。

正确的实现代码

方式一:通过应用显示名称定位

let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
// 替换成你的应用实际显示名称,比如"我的应用"
let backButton = settingsApp.navigationBars.buttons["我的应用"]
if backButton.exists {
    backButton.tap()
}

方式二:通过导航栏位置定位(无需名称)

如果不确定应用显示名称,也可以直接取导航栏的第一个按钮(系统返回按钮默认是导航栏最左侧的按钮):

let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
if let backButton = settingsApp.navigationBars.buttons.firstMatch {
    backButton.tap()
}

为什么之前的方法失败?

  1. 调用Springboard的代码无效:Springboard是负责主屏幕的系统应用,而这个返回按钮在设置应用的导航栏内,不属于Springboard。
  2. 调用Preferences的代码无效:你用了bundle ID里的"my-app"作为按钮标识符,但按钮的accessibility label是应用的用户可见名称,不是bundle ID的后缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:19:52