18

UITestingApple が WWDC 2015 で導入した xCode のフレームワークを使用して、1 つの問題に直面しています。UITableView があり、このテーブルには多くのセルが含まれています。また、セルのタイトルを持つ NSArray があります。セルのタイトルが NSArray に含まれている場合は、このセルをタップする必要があります。私の問題は、特定のセルのテーブル ビューをスクロールできないことです。フレームワークにはテーブル ビューを操作するためのメソッドが含まれておらず、スワイプ ジェスチャ (下、上) のみが含まれているためです。

テーブルビューで特定のセルをタップする方法を誰かが知っているでしょうか? または、特定のセルのテーブル ビューをスクロールするにはどうすればよいですか? 画面に表示されていないセルのメソッドを呼び出すとtap()、何も起こらないためです。

前もって感謝します!

4

4 に答える 4

5

@Eugene Zhenya Gordinの回答のSwiftバージョン: Swift 4用に更新

    let tablesQuery = app.tables
    let cellQuery = tablesQuery.cells.containing(.staticText, identifier: "MyCell")
    let cell = cellQuery.children(matching: .staticText)
    let cellElement = cell.element
    cellElement.tap()

    let tableElement = tablesQuery.element
    tableElement.swipeUp()
于 2016-09-13T18:03:36.947 に答える
5

最近、同様の問題に遭遇しました。試すことができるオプションは、テーブル内のセルの特定のタイトルを探して、それをタップすることです。

例えば:-

XCUIApplication().tables.staticTexts["identifier"].tap()

また

XCUIApplication().tables.cells.staticTexts["identifier"].tap()

「識別子」は、タップしようとしているセルのタイトルです。

これが役立つことを願っています!

于 2015-09-24T13:56:07.717 に答える
4

私はまったく同じ問題を抱えていました!

.staticTexts最初は、クエリを介してセルのラベルをタップするだけでした。これが私のために働いた別の方法です:

セルをインスタンス化するでは、セルまたは別のプロパティcellForRowAtIndexPathに応じて、それぞれに一意の識別子を与えます。titleLabel

例:

cell.accessibilityIdentifier = [NSString stringWithFormat:@"myCellType%@", cell.colorIdentifier];

次に、テストクラスに戻って、これを試してください: (理解を深めるために、わざと少し冗長にしています)

XCUIApplication *application = [XCUIApplication new];
XCUIElementQuery *tablesQuery = application.tables;
XCUIElementQuery *allCellsQuery = tablesQuery.cells;
XCUIElementQuery *specificCellQuery = [cellQuery matchingIdentifier:@"myCellTypeSaffron"];
XCUIElement *cell = specificCellQuery.element;

[cell tap];

特定のセルは、相互作用すると解決されます。

それが役立つことを願っています!

于 2016-12-09T22:15:13.327 に答える