XCUITest;如何查找StatusBar



我正在尝试创建一个XCUITest,我想在其中验证iOS的状态栏是否为:

  • 隐藏;或
  • 可见

但我找不到它…例如:

func testExample() throws {
let app = XCUIApplication()
app.launch()
let statusBar1 = app.descendants(matching: .statusBar)
let statusBar2 = app.statusBars.element(boundBy: 0)
}

当在控制台中执行po statusBar1时,我得到一个空结果:

Find: Target Application 'com.domain.TestStatusBar'
↪︎Find: Descendants matching type StatusBar

有找到它的线索吗?

谢谢!

它现在可以作为跳板后代访问:

class Springboard {
static let shared = XCUIApplication(bundleIdentifier: "com.apple.springboard")
static var statusBar: XCUIElement {
// There are always two statusBars, 
// but only one of them is accessible when we need to tap it
if XCUIDevice.shared.orientation.isPortrait {
return Springboard.shared.statusBars.firstMatch
}
else {
return Springboard.shared.statusBars.element(boundBy: 1)
}
}
}

从iOS 12起,状态栏不再可以通过XCTest访问,因为它是系统应用程序的一部分
如果您在iOS 11&下面,app.descendants(matching: .statusBar).element应该具有预期的结果。

换句话说,您只能访问那些位于您自己的应用程序窗口中的XCUIElement


Credits*适用于XCTest

相关内容

  • 没有找到相关文章

最新更新