XCUI Test: How to click Labels populated at run time

Viewed 400

I am trying to click label which is populated and cached at runtime. The TableViewCell has a UILabel which is decided at runtime. So I can't add a Accessibility Identifier to it. But I have added an identifier to the UILabel, but this view is repeated several times and when I look for a label

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

I get an error, Multiple matches found

I have added a identifier to the UILabel in the tableView, myIdentifier.

How can I access the label to automate the tap?

from 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'

Update: I tried accessing the element in this way:

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

[speakerStaticText tap];

Results in

   `↳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'`

I am not able to isolate and click on the particular label Recents Please suggest how I can do that.

1 Answers
Related