xcode-ui-测试面临的问题 XCode 9
Issue facing for xcode-ui-testing in XCode 9
UI 测试 ios-app,开发于 XCode 8 和 swift 3.2.
升级 XCode 到 9
后面临处理 ScrollViews 和 collectionViews 的问题
我可以点击并访问 Buttons、StaticTexts、TextFields 元素。
但是我无法在 XCode9 和 Swift 3.2.
上点击或访问 collectionviews、scrollviews、tableviews 元素
假设在之前的XCode版本中(即XCode 8.3)我使用了代码app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tap()
点击主页(collectionViews)。但是此代码在 XCode 9.
中不起作用
我试图使用 uitest 记录功能获取确切的元素。
通过使用录音我得到了代码 -
app.collectionViews.otherElements.containing(.textField, identifier:"StoryboardTitleTextField").children(matching: .collectionView).element.tap().
但是这段代码也不起作用。那我该如何解决呢?
谢谢
最近我在将我的项目(Swift 3.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)
希望它能解决您的问题。它对我来说就像一个魅力。
UI 测试 ios-app,开发于 XCode 8 和 swift 3.2.
升级 XCode 到 9
后面临处理 ScrollViews 和 collectionViews 的问题我可以点击并访问 Buttons、StaticTexts、TextFields 元素。 但是我无法在 XCode9 和 Swift 3.2.
上点击或访问 collectionviews、scrollviews、tableviews 元素假设在之前的XCode版本中(即XCode 8.3)我使用了代码app.collectionViews.collectionViews.cells.images.element(boundBy: 0).tap()
点击主页(collectionViews)。但是此代码在 XCode 9.
我试图使用 uitest 记录功能获取确切的元素。 通过使用录音我得到了代码 -
app.collectionViews.otherElements.containing(.textField, identifier:"StoryboardTitleTextField").children(matching: .collectionView).element.tap().
但是这段代码也不起作用。那我该如何解决呢?
谢谢
最近我在将我的项目(Swift 3.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)
希望它能解决您的问题。它对我来说就像一个魅力。