Xcode XCUITest - дополнительные символы, введенные в searchField при использовании typeText - PullRequest
0 голосов
/ 25 марта 2020

У меня есть тест в Xcode (XCUITests), который использует typeText для ввода строки в searchField. Для нашего теста мы сначала делаем 2 нажатия на searchField. Затем мы делаем:

searchField.typeText(ourStringHere + "\n")

Когда эта строка выполняется, она вводит первый символ еще 2 раза. Итак, если мы перейдем к «дереву», оно наберет «tttree». Это, очевидно, приводит к сбою наших тестов.

На этом экране в нашем приложении, которое мы тестируем, происходят действия, основанные на сопоставлении при вводе. Итак, после ввода первого символа отображаются некоторые результаты. Я считаю, что это вызывает проблему тайм-аута. Затем XCode снова пытается набрать слово целиком. Я верю, что это также происходит дважды. С третьей попытки экран установил фоновые действия и успешно набрал слово.

Если бы был какой-то способ переопределить typeText (), чтобы удалить все, что он ранее пробовал, это было бы полезно. Кроме того, добавление некоторых пауз между символами по мере их ввода поможет. Затем мы можем провести тестовое ожидание фоновых действий, чтобы показать все результаты, а затем ввести следующую букву.

Кроме этого, я не знаю, как это исправить.

1 Ответ

1 голос
/ 25 марта 2020

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

let pasteMenuItem = app.menuItems.firstMatch
UIPasteboard.general.string = "Preparing Pasteboard"

searchField.tap()
searchField.tap()
_ = pasteMenuItem.waitForExistence(timeout: 5)
UIPasteboard.general.string = ourStringHere + "\n"
pasteMenuItem.tap()

Также, посмотрите комментарии здесь typeText () печатает несовместимые символы для медленной печати.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...