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() }
为什么之前的方法失败?
- 调用Springboard的代码无效:Springboard是负责主屏幕的系统应用,而这个返回按钮在设置应用的导航栏内,不属于Springboard。
- 调用Preferences的代码无效:你用了bundle ID里的"my-app"作为按钮标识符,但按钮的accessibility label是应用的用户可见名称,不是bundle ID的后缀。
内容的提问来源于stack exchange,提问作者General Failure
相关产品推荐
相关产品推荐

