Files
suixinkan_ios_new/suixinkanUITests/Support/UITestTapHelper.swift
汉秋 aac8458b04 优化 UI Test 路由直达与会话复用,提升自定义 TabBar 下的稳定性。
新增启动参数直达首页与个人中心页面,引入 AppUITestRouteDriver 与 UITestSession 共享登录,并重构各模块用例的导航断言逻辑。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 11:25:36 +08:00

58 lines
1.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// UITestTapHelper.swift
// suixinkanUITests
//
// Created by Codex on 2026/6/26.
//
import XCTest
/// SwiftUI
enum UITestTapHelper {
///
static func tapLabel(
_ label: String,
in app: SuixinkanApp,
timeout: TimeInterval = 8,
file: StaticString = #filePath,
line: UInt = #line
) {
if let target = findLabel(label, in: app, timeout: timeout) {
target.tap()
app.waitForGlobalLoadingToDisappear()
return
}
app.application.swipeUp()
if let target = findLabel(label, in: app, timeout: 2) {
target.tap()
app.waitForGlobalLoadingToDisappear()
return
}
XCTFail("未找到可点击文案:\(label)", file: file, line: line)
}
///
private static func findLabel(_ label: String, in app: SuixinkanApp, timeout: TimeInterval) -> XCUIElement? {
let button = app.application.buttons[label]
if button.waitForExistence(timeout: timeout) {
return button
}
let containsButton = app.application.buttons.matching(
NSPredicate(format: "label CONTAINS %@", label)
).firstMatch
if containsButton.waitForExistence(timeout: 2) {
return containsButton
}
let text = app.application.staticTexts[label]
if text.waitForExistence(timeout: 2) {
return text
}
return nil
}
}