Help us understand the problem. What is going on with this article?

XCTestのUITestでCellをタップさせる方法

More than 1 year has passed since last update.

概要

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];
}
blackcat
黒猫好きなプログラマ。
http://www.macneko.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away