XCTest:无法在swipeLeft()之后获取最后一个集合单元格元素

时间:2017-11-08 04:16:01

标签: ios swift xcode-ui-testing

我在表格视图单元格中有一个集合视图。我想在向左滑动以查看最后一个收集单元格后点击最后一个单元格。

例如,这里是我的列表集合视图单元格:

          |A  B  C  D| E F
     

注意:'|'是屏幕和集合单元格的界限E,F是不可见的

     let tableCell = app.tables["TableView"].cells.element(boundBy: 1)

  // Test to get the label of collection cell inside tableCell
     let collectionCell_A = tableCell.staticTexts["A"]
     XCTAssert(collectionCell_A.exists) // Okay

  // Swipe left to see the collection cell E
     tableCell.swipeLeft()

  // Test to get collection cell D success
     let sevenElevenCell = tableCell.staticTexts["D"]

  // But with the collection cell E always failed.
     let collectionCell_E = tableCell.staticTexts["E"]
     waitUntilElementExists(collectionCell_E) // My helper func to wait element exits for 10 seconds
     collectionCell_E.tap() // Failed here

调试之后,我发现列表staticTexts在收集向左滑动后没有更新。

我认为这个家伙和我一样有同样的问题。 https://forums.developer.apple.com/thread/82366

1 个答案:

答案 0 :(得分:0)

此问题已得到解决。我的同事有一个很好的解决方案来解决它。

let cell = XCUIApplication().cells.containing(NSPredicate(format: "label CONTAINS %@", "E")).element

cell.tap()              // Success.

希望这会帮助别人。