// // UITestNavigation.swift // suixinkanUITests // // Created by Codex on 2026/6/26. // import XCTest /// 用例间恢复到可继续测试的稳定导航状态。 enum UITestNavigation { /// 将 App 恢复到主 Tab 首页,尽量弹出深层导航栈。 static func resetToHome(app: SuixinkanApp, file: StaticString = #filePath, line: UInt = #line) { app.application.activate() app.waitForGlobalLoadingToDisappear() if app.isOnLoginScreen { return } popToMainTabsIfNeeded(app: app) if app.isOnMainTabs { TabBarNavigator.select(.home, app: app, file: file, line: line) } } /// 连续返回直到回到主 Tab 或无法继续返回。 private static func popToMainTabsIfNeeded(app: SuixinkanApp) { for _ in 0..<8 { if app.isOnMainTabs { return } BackNavigator.dismissCustomTopBarIfNeeded(app: app) if app.isOnMainTabs { return } let navigationBar = app.application.navigationBars.element(boundBy: 0) guard navigationBar.exists else { break } let backButton = navigationBar.buttons.element(boundBy: 0) guard backButton.waitForExistence(timeout: 1) else { break } backButton.tap() app.waitForGlobalLoadingToDisappear() } } }