如何在 UITests 中选择 UITableView 的一部分?

Posted

技术标签:

【中文标题】如何在 UITests 中选择 UITableView 的一部分?【英文标题】:How can I select one section of a UITableView in UITests? 【发布时间】:2017-02-12 19:06:27 【问题描述】:

我有一个显示某些部分的 TableView。当用户点击这些部分时,每个部分下方的单元格就会出现。

我想选择一个部分来模拟触摸

尝试使用谓词

XCUIApplication* app = [[XCUIApplication alloc] init];
[app launch];
XCUIElement* section = [app.tables elementMatchingPredicate: [NSPredicate predicateWithFormat: @"description like MySection"]];
[section tap];

试图访问我的 TableView 上的第一个单元格,但没有成功。

XCUIElement* section = [app.tables elementBoundByIndex:0];
[section tap];

【问题讨论】:

【参考方案1】:

如果你给你的部分标题一个可访问性标识符。如果您的部分标题是动态的,您可以为它们提供所有相同的可访问性标识符,然后按索引选择一个:

XCUIElement *table = [app.tables elementBoundByIndex: 0];
XCUIElementQuery *sections = [table.otherElements matchingIdentifier: "MySection"];
XCUIElement *section = [sections elementBoundByIndex: 0];
[section tap];

否则,您可以直接通过可访问性标识符访问:

XCUIElement *section = table.otherElements["MySection"];

【讨论】:

以上是关于如何在 UITests 中选择 UITableView 的一部分?的主要内容,如果未能解决你的问题,请参考以下文章

运行 Xamarin.UITests 时有没有办法让应用程序选择语言或文化

UITests - 如何在UITests中获取当前语言

如何从 UITests 中访问 UITabBarItem?

XCode 中禁用的 UITests

在 UITests 中获取 UISwitch 状态/值

如何在 UITests Target 中使用accessibilityIdentifier 查找UIView