在 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()?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Material Library 中的 ErrorTextField 进行 Xcode UI 测试
带有 unicode 的字符串在新的 XCode UI 测试中不匹配并且测试失败