ios - 如何点击 Xcode 模拟器上的特定点

标签 ios swift xcode xctest xcode-ui-testing

我使用 swift 的 UI 测试,我需要能够点击我的应用程序上的特定点。我遵循了 How to tap on a specific point using Xcode UITests 的答案,非常适合在 iPad 上进行测试。然而,当在模拟器上做同样的事情时,什么也没有发生。没有错误,程序只是像我在按某物,但没有任何特别的东西,并且由于不存在正确的信息,程序无法继续执行。

这可能是本地问题吗?如果不是,我该怎么做才能在模拟器上点击特定坐标?

最佳答案

嗯,您不能只点击屏幕。你必须点击一些东西。

最简单的做法是使用应用程序中的元素和 Apple 的方法 coordinate(withNormalizedOffset:)

创建一个方法,它将具有输入参数元素(您想要点击)和偏移量(您想要点击的点)。像这样:

func tap(on element: XCUIElement, xOffset: Double, yOffset: Double) {
    let coordinate = element.coordinate(withNormalizedOffset: CGVector(dx: xOffset, dy: yOffset))

    if element.waitForExistence(5) {
         coordinate.tap()
    }
}

然后,您可以通过调用此方法并为其提供元素来点击测试应用中的任何元素。

例如: 你想点击应用程序本身的某个点,偏移量为 0.80.5:

tap(on: XCUIApplication(), xOffset: 0.8, yOffset: 0.5)

关于ios - 如何点击 Xcode 模拟器上的特定点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53186926/

相关文章:

ios - NSMutableOrderedSet 到 NSMutableArray

ios - 读取 CSV 文件 Swift 终端项目

xcode - 你能在 Xcode 中创建一个 "superset"目标吗?

Xcode 转到下一行热键(如 intellij 的 shift enter)

ios - 隐藏后的快速键盘高度

iphone - 从我的应用程序中打开其他已安装的应用程序

android - Plone/Diazo 的移动应用标记

objective-c - 使用 stringWithContentsOfFile : 读取文件时出现问题

ios - 无法使用核心数据从 DynamoDB 获取相关项目

ios - 如何在运行耗时函数时显示 Activity Indicator Alert Controller?