一个ios应用程序的用户界面测试,在XCode 8和迅捷3.2中开发。
ScrollViews、collectionViews升级到9后面临的问题
我可以点击和访问按钮,StaticTexts,TextFields元素。但是我不能点击或访问XCode9和SWIFT3.2上的集合视图、滚动视图、表视图元素。
假设在以前的XCode版本(即XCode 8.3)中,我使用了代码app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tap()
点击主页(CollectionViews)。但是这段代码在XCode 9中不起作用。
我试着用最丑的录音功能得到准确的元素。通过录音我得到了密码-
app.collectionViews.otherElements.containing(.textField, identifier:"StoryboardTitleTextField").children(matching: .collectionView).element.tap().但这段代码也不起作用。那我该怎么解决呢?
谢谢
发布于 2017-11-27 14:02:22
最近,在将我的项目(SWIFT3.2)升级到XCode 9之后,我也遇到了类似的问题。
问题是
app.collectionViews.collectionViews.cells.images.element(boundBy: 0).isHittable is returning false. 这就是为什么默认的tap()方法不适用于分层元素。
我刚做了下面的程序,效果很好。
步骤1:创建如下所示的扩展
extension XCUIElement {
func tryClick() {
if self.isHittable {
self.tap()
}
else {
let coordinate: XCUICoordinate = self.coordinate(withNormalizedOffset: CGVector(dx:0.5, dy:0.5))
coordinate.doubleTap()
//coordinate.press(forDuration: 0.5)
}
}
}步骤2:使用上面创建的实例方法单击元素,而不是使用直接tap()方法。
app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tryClick()注意:尝试使用
CGVector(dx:0.5, dy:0.5) or CGVector(dx:0.0, dy:0.0)希望它能解决你的问题。对我来说就像一种魅力。
https://stackoverflow.com/questions/47268421
复制相似问题