概要
XCTestのUITestでCellをタップさせる方法がわからなかったので、経緯とともに自分用に残しておく。
答え
Cell自体をタップするのではなく、子要素をタップする。
サンプル
- (void)testExample {
XCUIApplication *app = [[XCUIApplication alloc] init];
// CellをタップするとNG
[[app.collectionViews.cells elementBoundByIndex:0] tap];
// Cellの子要素をタップするとOK
[[app.collectionViews.cells elementBoundByIndex:0].staticTexts[@"タイトル"] tap];
}
おまけ
上記の例ではタイトルというラベルがあることが前提になっているが、ラベルの文字列が固定じゃない場合は、indexで指定することも可能。
サンプル
- (void)testExample {
XCUIApplication *app = [[XCUIApplication alloc] init];
[[[app.tables.cells elementBoundByIndex:0].staticTexts elementBoundByIndex:0] tap];
}