Swift UITest Не удается найти коллекцию внутри таблицы. - PullRequest
0 голосов
/ 10 января 2019

У меня есть «collectionView» внутри «tableViewCell», и в XCTest я не могу получить доступ к этому «collectionView» или его «ячейкам». вот мой код для доступа к этому «коллекционному виду». Также я использовал accessibilityIdentifier, но ничего не изменилось. Я могу получить доступ к "tableViewCell", но не могу получить "collectionView"

app.tables.cells.element(boundBy: 7).collectionViews.element(boundBy: 0).cells.element(boundBy: 0)

1 Ответ

0 голосов
/ 10 января 2019

Если я правильно понимаю вопрос, причина, по которой вы не можете получить collectionViewCell, заключается в том, что в collectionViewCell есть некоторые средства реагирования на жесты, такие как кнопка. Если такого подвида нет или какой-то тупой как метка, все равно вы можете получить collectionViewCells следующим образом:

  let collectionViewsQuery = XCUIApplication().tables.children(matching: .cell).element(boundBy: 1).collectionViews // the second table cell 

   let element = collectionViewsQuery.children(matching: .cell).element(boundBy: 3).children(matching: .other).element // the fourth cell

     let element2 = collectionViewsQuery.children(matching: .cell).element(boundBy: 4).children(matching: .other).element // the fifth cell , 

и т. Д.

Однако, если в какой-либо ячейке есть кнопка, вы не можете получить ячейку напрямую:

  let tablesQuery = XCUIApplication().tables
  let cell = tablesQuery.children(matching: .cell).element(boundBy: 1) // the second table cell

  let button = cell.children(matching: .button).element(boundBy: 0) // the button which lies at any of collectionCell and not defined.

Надеюсь, это ответит на ваш вопрос, почему бы не получить ячейку для сбора. На самом деле, вы можете сначала ссылаться на ячейку, а затем попытаться сослаться на кнопку позже двумя шагами.

...