Как получить индекс ячейки с учетом текста внутри в XCUITest? - PullRequest
0 голосов
/ 17 июня 2019

Я тестирую табличное представление содержимого ячейки в XCUItest.В моем случае я не знаю порядок текста в ячейке, и мне не разрешено устанавливать идентификатор доступности для текста.Как я могу получить индекс ячейки с учетом текста внутри?

enter image description here

Например, если бы я хотел получить индекс ячейки, содержащей текст «Текст ячейки 2», я бы попробовал что-то вроде этого:

func testSample() {
    let app = XCUIApplication()
    let table = app.tables
    let cells = table.cells

    let indexOfCell2Text = cells.containing(.staticText, identifier: "Cell 2 Text").element.index(ofAccessibilityElement: "I dunno")
    print(indexOfCell2Text)
}

Я чувствую, что я рядом, но я не уверен.Кто-нибудь может предложить решение?

Я прошу прощения, если этот вопрос был задан ранее.Я не смог найти что-то конкретное по этому поводу.

Ссылки, которые я посетил заранее: https://developer.apple.com/documentation/xctest/xcuielementquery/1500842-element

Как я могу проверить существование текста внутри строки табличного представления по его индексув тесте пользовательского интерфейса XCTest?

Тестирование пользовательского интерфейса iOS нажмите на первый индекс таблицы

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Самый надежный способ - это добавить индекс в идентификатор доступности. Но вы не можете. Можете ли вы изменить идентификатор доступности ячейки вместо текста?

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

let idx = 0
for cell in table.cells.allElementsBoundByIndex {
    if cell.staticTexts["Text you are looking for"].exists {
        return idx
    }
    idx = idx + 1
}

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

0 голосов
/ 21 июня 2019
for index in 0..<table.cells.count {
    if table.cells.element(boundBy: index).staticTexts["Your Text"].exists {
        return index
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...