使用 XCTest 测试 iOS 应用程序时检查 XCUIElement 在屏幕上的位置

Check the position of the XCUIElement on screen while testing iOS Application using XCTest

我正在测试一个 iOS 应用程序,目前我正在使用 isHittable.

检查特定 XCUIElement 是否存在

我想知道我们是否还可以检查 XCUIElement 在视图上的位置。例如,如果我们在视图的右下角有一个按钮,我们可以使用 XCTest 框架检查它是否真的在右下角吗?

我查看了 XCTest 框架的 Apple 文档,但没有得到任何线索。任何帮助将不胜感激。

使用以下方法获取元素的边界:

let bounds = viewToTest.convert(viewToTest.bounds, to: nil)

然后检查边界是否正确。请注意,当竖屏时,边界相对于屏幕的左上角。

XCUIElement 有一个 属性 frame,您可以使用它来查找相关元素的坐标。

let button = XCUIApplication().buttons["someButton"]
let frame = button.frame
let xPosition = frame.origin.x
let yPosition = frame.origin.y

还有其他方法可以检索相对于框架的不同点,即 CGRect,例如 midXmidY,具体取决于您要如何断言位置元素的。

您应该知道 XCTest 是一个 functional UI 测试框架,如果您使用它来断言元素的位置,该位置可能会根据 device/simulator 不同,这可能会使您的测试变得脆弱。