在 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()?的主要内容,如果未能解决你的问题,请参考以下文章

使用登录系统进行 Xcode UI 测试

使用 Material Library 中的 ErrorTextField 进行 Xcode UI 测试

带有 unicode 的字符串在新的 XCode UI 测试中不匹配并且测试失败

Xcode 中的批量 UI 测试

Xcode UI 测试 - 当测试套件中的任何给定测试失败时停止测试?

使用 Xcode 进行 UI 测试:如何找到没有标题的按钮?