集成 MJRefresh 并重构主 TabBar 为系统 TabView 样式。
新增 SwiftUI 桥接层与单元测试,更新 Tab 图标资源命名和多倍图,同步调整 UI Test 的 Tab/扫码定位逻辑。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -37,7 +37,31 @@ enum TabBarNavigator {
|
||||
app.waitForGlobalLoadingToDisappear()
|
||||
}
|
||||
|
||||
/// 在底部自定义 TabBar 中定位唯一可点击的 Tab 按钮。
|
||||
/// 获取主界面的扫码入口按钮。
|
||||
static func scannerButton(in app: SuixinkanApp) -> XCUIElement {
|
||||
let identifiedButton = app.application.buttons["main.scan"]
|
||||
if identifiedButton.exists {
|
||||
return identifiedButton
|
||||
}
|
||||
|
||||
let systemTabButton = app.application.tabBars.buttons["扫码核销"]
|
||||
if systemTabButton.exists {
|
||||
return systemTabButton
|
||||
}
|
||||
|
||||
return bottomTabButton(named: "扫码核销", in: app)
|
||||
}
|
||||
|
||||
/// 判断主 Tab 是否已经出现在界面上。
|
||||
static func isVisible(in app: SuixinkanApp) -> Bool {
|
||||
Tab.allCases.contains { tab in
|
||||
app.application.tabBars.buttons[tab.rawValue].exists
|
||||
|| app.application.buttons[tab.identifier].exists
|
||||
|| app.application.buttons[tab.rawValue].exists
|
||||
}
|
||||
}
|
||||
|
||||
/// 在底部系统 TabBar 或旧自定义 TabBar 中定位唯一可点击的 Tab 按钮。
|
||||
private static func bottomTabButton(named title: String, in app: SuixinkanApp) -> XCUIElement {
|
||||
if let tab = Tab(rawValue: title) {
|
||||
let identifiedButton = app.application.buttons[tab.identifier]
|
||||
@ -46,6 +70,11 @@ enum TabBarNavigator {
|
||||
}
|
||||
}
|
||||
|
||||
let systemTabButton = app.application.tabBars.buttons[title]
|
||||
if systemTabButton.exists {
|
||||
return systemTabButton
|
||||
}
|
||||
|
||||
let candidates = app.application.buttons.matching(NSPredicate(format: "label == %@", title))
|
||||
let screenHeight = app.application.windows.element(boundBy: 0).frame.height
|
||||
var bestMatch: XCUIElement?
|
||||
|
||||
Reference in New Issue
Block a user