如何在Xcode模拟器上点击特定点

时间:2018-11-07 09:45:49

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

我正在使用swift的UI测试,因此我需要能够在我的应用上点击一个特定的点。我遵循了How to tap on a specific point using Xcode UITests的答案,该答案非常适合在iPad上进行测试。但是,当在模拟器上执行相同操作时,则不会发生任何事情。没有错误,该程序的行为就像我按某事一样,但没有特别的提示,并且由于没有正确的信息,该程序无法继续执行。

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

1 个答案:

答案 0 :(得分:0)

好吧,您不能只点击屏幕。您必须点一下。

最简单的方法是使用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()
    }
}

然后,您可以通过调用此方法并将其赋予元素,从而在测试的应用程序中点击任意元素。

F.e .: 您想使用0.80.5偏移量来点按应用本身中的某个点:

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