Xcode的UI测试 - 点击x y坐标位置

3

我正在使用Xcode和UI测试,尝试获取x,y位置。这是我的代码:

 XCUIApplication().coordinateWithNormalizedOffset(CGVector(dx: 50, dy: 50)).tap()

但是,这并不是按下按钮的方法。有人知道是否有正确的方法来点击一个x y坐标吗?

2个回答

6
dxdy不是像素偏移量,而是归一化向量。例如,0.5实际上是元素的中心。您的代码试图点击屏幕范围之外的元素(大约偏移了50个像素!)。
我建议尝试使用不同的方法解决问题。首先,为什么无法识别按钮?您尝试过什么?您是否使用自定义UIButton子类?
我之所以这样问是因为您可以(通常)通过正确的可访问性属性公开任何控件或UI元素进行UI测试。例如,您可以将accessibilityLabelaccessibilityIdentifier设置为按钮的文本。然后,您可以使用该值来访问要测试的按钮。
// Production Code
let button = UIButton()
button.setTitle("Save", forState: .Normal)
button.accessibilityIdentifier = "Save"

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

Joe - 谢谢你提醒我们50x问题!糟糕。我们已经尝试了可访问标签、ID和提示,但由于某些未知原因,这个页面变得非常难看。开发人员仍在调试,但我说我会尝试一种x,y方法在此期间。将尝试一些0.x值-谢谢! - Charlie S

0

你可以使用 dx: 1.5 来点击元素的右边50%位置。我在一个我无法控制的应用程序上使用了这个功能,该应用程序具有 webView。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接