使用 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
,例如 midX
和 midY
,具体取决于您要如何断言位置元素的。
您应该知道 XCTest 是一个 functional UI 测试框架,如果您使用它来断言元素的位置,该位置可能会根据 device/simulator 不同,这可能会使您的测试变得脆弱。
我正在测试一个 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
,例如 midX
和 midY
,具体取决于您要如何断言位置元素的。
您应该知道 XCTest 是一个 functional UI 测试框架,如果您使用它来断言元素的位置,该位置可能会根据 device/simulator 不同,这可能会使您的测试变得脆弱。