XCUI测试:如何单击运行时填充的标签

时间:2017-07-24 20:39:43

标签: ios objective-c xcode

我正在尝试单击在运行时填充和缓存的标签。 TableViewCell有一个UILabel,它在运行时决定。所以我无法为其添加辅助功能标识符。但是我已经为UILabel添加了一个标识符,但是当我查找标签时,这个视图重复了几次

[tablesQuery.staticTexts[@"Channels"] tap];

我收到错误,找到多个匹配

我在tableView,myIdentifier。

中为UILabel添加了一个标识符

如何访问标签以自动点击?

来自app.debugDescription

Assertion Failure: Smoke.m:238: No matches found for "Recents" StaticText
Query input was {(
    StaticText 0x600000563840: traits: 8589934656, {{40.0, 90.0}, {211.0, 21.0}}, identifier: 'navScreenTitle', label: 'Speaker',
    StaticText 0x600000563900: traits: 8589934656, label: 'No Volume Available',
    StaticText 0x6000005639c0: traits: 8589934656, {{40.0, 90.0}, {211.0, 21.0}}, identifier: 'navScreenTitle', label: 'Speaker',
    StaticText 0x600000563a80: traits: 8589934656, label: 'No Volume Available',
    StaticText 0x600000563b40: traits: 8589934656, {{40.0, 90.0}, {211.0, 21.0}}, identifier: 'navScreenTitle', label: 'Speaker',
    StaticText 0x600000563c00: traits: 8589934656, label: 'No Volume Available',
    StaticText 0x600000563cc0: traits: 8589934656, {{40.0, 90.0}, {211.0, 21.0}}, identifier: 'navScreenTitle', label: 'Speaker',
    StaticText 0x600000563d80: traits: 8589934656, label: 'No Volume Available'

更新: 我试着以这种方式访问​​元素:

XCUIElement *speakerStaticText = tablesQuery.staticTexts[@"navScreenTitle"] ;

[speakerStaticText tap];

结果

   `↳Table 0x6000005681c0: traits: 35192962023424, {{0.0, 77.0}, {330.0, 590.0}}
      ↳Cell 0x6000005684c0: traits: 8589934592, {{0.0, 79.0}, {330.0, 88.0}}
      ⋅ ↳StaticText 0x600000568340: traits: 8589934656, {{40.0, 90.0}, {211.0, 21.0}}, identifier: 'navScreenTitle', label: 'Speaker'
      ↳Cell 0x6000005699c0: traits: 8589934593, {{0.0, 167.0}, {330.0, 44.0}}
      ⋅ ↳StaticText 0x600000569900: traits: 8589934656, {{40.0, 178.0}, {257.0, 21.0}}, identifier: 'navScreenTitle', label: 'Status'
      ↳Cell 0x60000056aec0: traits: 8589934593, {{0.0, 213.0}, {330.0, 44.0}}
      ⋅ ↳StaticText 0x60000056ae00: traits: 8589934656, {{40.0, 224.0}, {257.0, 21.0}}, identifier: 'navScreenTitle', label: 'Recents'
      ↳Cell 0x60000056c3c0: traits: 8589934593, {{0.0, 257.0}, {330.0, 44.0}}
      ⋅ ↳StaticText 0x60000056c300: traits: 8589934656, {{40.0, 268.0}, {257.0, 21.0}}, identifier: 'navScreenTitle', label: 'Contacts'
      ↳Cell 0x60000056d8c0: traits: 8589934593, {{0.0, 301.0}, {330.0, 44.0}}
      ⋅ ↳StaticText 0x60000056d800: traits: 8589934656, {{40.0, 312.0}, {257.0, 21.0}}, identifier: 'navScreenTitle', label: 'Channels'
      ↳Cell 0x60000056ec40: traits: 8589934593, {{0.0, 347.0}, {330.0, 44.0}}
        ↳StaticText 0x60000056eb80: traits: 8589934656, {{40.0, 358.0}, {257.0, 21.0}}, identifier: 'navScreenTitle', label: 'Options'`

我无法隔离并点击特定标签最近 请建议我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

这适用于Objective-C

[[[[app staticTexts] matchingIdentifier:@" Recents"] elementBoundByIndex:0] tap];

在斯威夫特:

XCUIApplication()。staticTexts.matching(identifier:" Recents")。element(boundBy:0).tap()