我正在使用swift的UI测试,因此我需要能够在我的应用上点击一个特定的点。我遵循了How to tap on a specific point using Xcode UITests的答案,该答案非常适合在iPad上进行测试。但是,当在模拟器上执行相同操作时,则不会发生任何事情。没有错误,该程序的行为就像我按某事一样,但没有特别的提示,并且由于没有正确的信息,该程序无法继续执行。
这可能是本地问题吗?如果没有,我该怎么做才能在模拟器上的特定坐标处点击?
答案 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.8
和0.5
偏移量来点按应用本身中的某个点:
tap(on: XCUIApplication(), xOffset: 0.8, yOffset: 0.5)