Xcodes UI 测试 - 点击 xy 位置

Cha*_*man 3 xcode tap coordinates ios xcode-ui-testing

我正在尝试在使用 Xcode 和 UI 测试时点击 x、y 位置。这是我的代码:

 XCUIApplication().coordinateWithNormalizedOffset(CGVector(dx: 50, dy: 50)).tap()
Run Code Online (Sandbox Code Playgroud)

按钮的中间肯定在那个位置,不能被识别为一个单独的对象(因此使用 x, y 坐标)。

然而,这不是按下按钮。任何人都知道是否有正确的方法来敲击 xy 坐标?

Joe*_*tti 6

dxdy不像素偏移,但归一化矢量。例如,0.5实际上是元素的中间。您的代码正在尝试点击屏幕边界之外的元素(大约 50 倍!)。

我建议尝试用不同的方法解决问题。首先,为什么不能识别按钮?你尝试过什么?您是否使用自定义UIButton子类?

我问是因为您可以(通常)使用正确的可访问性属性将任何控件或 UI 元素暴露给 UI 测试。例如,您可以将accessibilityLabel和设置accessibilityIdentifier为按钮的文本。然后您可以使用该值访问被测按钮。

// Production Code
let button = UIButton()
button.setTitle("Save", forState: .Normal)
button.accessibilityIdentifier = "Save"

// UI Test Code
```
let app = XCUIApplication()
app.buttons["Save"].tap()
Run Code Online (Sandbox Code Playgroud)