首页 > 解决方案 > XCUITest - 单击主屏幕上的元素

问题描述

XCUITest 中有没有办法访问 HomeScreen 上的元素?

现在,如果我在后台运行正在运行的应用程序,然后尝试访问其上的元素。IE

XCUIApplication().launch()
XCUIDevice.shared.press(XCUIDevice.Button.home)
XCUIApplication().otherElements["Dock"].icons["Settings"].tap()

Failed to get matching snapshot: Application is not running

我也尝试了坐标并得到了相同的结果,因为坐标似乎也需要来自主应用程序的元素,而不是 HomeScreen。如果我也可以单击 HomeScreen 上的元素,那就太好了。

标签: xcuitest

解决方案


是的,您可以使用 XCTest 与其他应用程序进行交互。

使用XCUIApplication(bundleIdentifier:_)初始化设置与其他应用程序的交互。

在您的情况下,您可以打开设置应用程序

let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
springboard.icons("Settings").tap()

或完全跳过跳板并直接进入设置

let settings = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
settings.launch()

您可以在此处找到系统应用程序的其他捆绑标识符:https ://github.com/rzakhar/XCTApps/blob/master/Sources/XCTApps/iOS.swift


推荐阅读