iOS UI Testing tap on first index of the table

安稳与你 提交于 2019-12-07 02:17:11

问题


I just started studying for UI testing in iOS. When I press record and tap on first index of the table, it generate codes like this.

XCUIApplication *app = [[XCUIApplication alloc] init];
[app.tables.staticTexts[@"Apr 04 16:28"] tap];

It is good if all my data are constant. But those text will be changed from time to time. How can I modify these code so that it will always tap on the first index of the table?


回答1:


Use -elementBoundByIndex on your app's cells.

XCUIApplication *app = [[XCUIApplication alloc] init];
[[app.cells elementBoundByIndex: 0] tap];



回答2:


Swift 4

@Joe Masilotti's solution didn't work for me. So I used:

let app = XCUIApplication()
app.tables["table's accessibilityIdentifier"].cells.allElementsBoundByIndex.first?.tap()

"table's accessibilityIdentifier" should be replaced by your table's accessibilityIdentifier.

Possibly this will save a few minutes for someone.




回答3:


Swift

If you're doing UI Testing, this will be helpful:

let cellCount = app.tables.cells.count
XCTAssertTrue(cellCount > 0)

let firstCell = app.tables.cells.element(boundBy: 0)
XCTAssertTrue(firstCell.exists)
firstCell.tap()

To answer your question though, you only need these 2 lines:

let firstCell = app.tables.cells.element(boundBy: 0)
firstCell.tap()


来源:https://stackoverflow.com/questions/36566558/ios-ui-testing-tap-on-first-index-of-the-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!