在 Xcode 7.0.1 中进行 UI 测试时,是不是可以使用 Swift 滚动到 Element()?

Posted

技术标签:

【中文标题】在 Xcode 7.0.1 中进行 UI 测试时,是不是可以使用 Swift 滚动到 Element()?【英文标题】:Is posible to scrollToElement() with Swift when UI Testing in Xcode 7.0.1?在 Xcode 7.0.1 中进行 UI 测试时,是否可以使用 Swift 滚动到 Element()? 【发布时间】:2015-11-26 17:53:31 【问题描述】:

我刚开始在 Xcode 7 (7.0.1) 中使用 Swift 进行一些 UI 测试,并且想解决问题以便继续测试。

我的应用有一个包含很多单元格的表格视图,我想点击一个不可见的单元格;目前我的解决方法是 SwipeUp() ,然后在可见时点击单元格。

它有效,但效率不高,因为当我 SwipeUP() 时,我想点击的单元格可能不可见,因为滑动太多,并且无法点击单元格。

我需要滚动而不是滑动。

如果有人有关于 Swift 进行 UI 测试的资源链接,以便我继续阅读,我将非常感激。

干杯, 奇诺。

【问题讨论】:

【参考方案1】:

更新: Apple 为 XCUIElement 添加了滚动功能,该功能需要滚动像素数。这可能比以下建议更好。我还没有尝试过 Apple 的新滚动功能。 https://developer.apple.com/reference/xctest/xcuielement/1500758-scroll

这是 Apple 必须解决的真正问题。在此之前,一种解决方法是使用

let element = <Any XCUIElement>
let topPoint = element.coordinateWithNormalizedOffset(CGVectorMake(0.5, 0.25))
let bottomPoint =  element.coordinateWithNormalizedOffset(CGVectorMake(0.5, 0.75))
bottomPoint.pressForDuration(0.1, thenDragToCoordinate: topPoint)

与使用此 sn-p 的滑动功能相比,我们可以更好地控制滚动。

如果你考虑使用它,我建议你将这个 sn-p 作为扩展添加到 XCUIElement。

【讨论】:

【参考方案2】:

我也没有找到滚动功能,但对于

它有效,但效率不高,因为当我 SwipeUP() 时,我想点击的单元格可能不可见,因为滑动太多,并且无法点击单元格。

您可能希望在点击某个属性(如标签或标题)之前验证单元格以避免错误点击。

【讨论】:

是的,对单元格进行验证是个好主意,但这并不能解决我的问题,无论如何,此时我正在使用 swipeUp 功能。

以上是关于在 Xcode 7.0.1 中进行 UI 测试时,是不是可以使用 Swift 滚动到 Element()?的主要内容,如果未能解决你的问题,请参考以下文章