ios - 如何单击控制中心中的按钮?

标签 ios swift xctest xcode-ui-testing ui-testing

我是 Swift 和 UITesting 的新手。我有一个测试用例,必须关闭设备的互联网连接,但由于我无法做到这一点,我尝试通过滑动应用程序中最底部的可用元素来访问控制中心

let app = XCUIApplication()
app.buttons["Device"].swipeUp()
app.buttons["Device"].swipeUp()

现在显示了控制中心,但是当我尝试单击飞行模式或 Wi-Fi 按钮时,它失败了。

app.otherElements["Airplane Mode"].tap()
app.otherElements["Wi-Fi"]

See Screenshot Here

请帮助我如何做到这一点,如果没有,请提供一个打开或关闭我的设备的互联网连接的解决方法,谢谢!

最佳答案

没有可靠的方法可以使用 UI 测试来执行此操作。在 UI 测试中,您只能看到正在测试的应用程序的 View 层次结构。 控制中心位于您的应用程序之外,因此您无权访问其 View 层次结构。

如果您真的想这样做,一种方法是对坐标进行硬编码,然后执行点击操作。由于 UI 测试没有直接指定协调的机制,因此最好的方法是使用 cocodWithNormalizedOffset(normalizedOffset: CGVector)。

关于ios - 如何单击控制中心中的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36547064/

相关文章:

ios - 使用 Xcode 中的 UI 测试在 UIWebView 中加载的网页中键入文本时出现问题

objective-c - 由于dispatch_once导致XCTest失败的解决方法?

ios - 如何使用 expectationForPredicate 并点击一个按钮

ios - 在同一 uitableview 中显示两个不同的自定义单元格 - swift firebase

ios - Core Data 如何为关系设置一个值?

ios - 以编程方式实现的约束与 Storyboard 中的约束的工作方式不同

ios - 带字典的 Swift 4 Codable 数组具有 String 和 Array 的值

objective-c - 无法导入 AssetsLibrary.h

ios - 来自 HealthKit 的数据最初丢失,然后当我重试时又出现 - 如何修复?

ios - 选择集合中不可见的单元格