Xcodes UI 测试 - 点击 xy 位置
Xcodes UI Testing - Tapping an x y location
我在使用 Xcode 和 UI 测试时尝试点击 x、y 位置。这是我的代码:
XCUIApplication().coordinateWithNormalizedOffset(CGVector(dx: 50, dy: 50)).tap()
按钮的中间肯定在那个位置,不能被识别为一个单独的对象(因此使用 x, y 坐标)。
但是,这不是按下按钮。谁知道点击 x y 坐标是否有正确的方法?
dx
和dy
不是像素偏移,而是归一化向量。例如,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()
您可以使用 dx: 1.5 单击元素右侧的 50%。我在一个有我无法控制的 webView 的应用程序上使用了它。
我在使用 Xcode 和 UI 测试时尝试点击 x、y 位置。这是我的代码:
XCUIApplication().coordinateWithNormalizedOffset(CGVector(dx: 50, dy: 50)).tap()
按钮的中间肯定在那个位置,不能被识别为一个单独的对象(因此使用 x, y 坐标)。
但是,这不是按下按钮。谁知道点击 x y 坐标是否有正确的方法?
dx
和dy
不是像素偏移,而是归一化向量。例如,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()
您可以使用 dx: 1.5 单击元素右侧的 50%。我在一个有我无法控制的 webView 的应用程序上使用了它。