Я использую TestCafe для автоматизации тестирования веб-приложения на основе платформы Wicket. Я пытаюсь ввести текст в поле ввода текста ... ну, на самом деле это выпадающий список, где появляется поле ввода текста, так что пользователь может искать определенные коды. Фрагмент HTML выглядит следующим образом: Фрагмент HTML
А вот соответствующий снимок экрана (текстовое поле над «001»): Поле ввода текста с раскрывающимся списком
Пользователь может ввести несколько символов, и приведенный ниже список автоматически фильтруется (я сделал это вручную): Поле ввода текста с некоторым текстом
Мой тест TestCafe пытается это:
.click( productcodeList )
.expect( productcodeInputField.visible ).ok()
.click( productcodeInputField )
.typeText( productcodeInputField, 'ABW' )
т.е. нажмите на выпадающий список. Предположим, что поле ввода текста теперь видно (работает нормально). Нажмите на поле ввода текста (в этом нет необходимости, так как typeText () должен делать это в любом случае). Введите текст «ABW» в поле ввода текста ==> Это не работает. Я уверен, что мой селектор работает, так как утверждение (ожидаемое) успешно, и когда я отлаживаю тестовый прогон после второго щелчка (в поле ввода текста), я вижу следующее: Скриншот TestCafe Т.е. курсор находится прямо в текстовом поле, но каким-то образом TestCafe не может записать текст в поле.
Некоторая дополнительная информация: селектор для поля ввода создается следующим образом:
productcodeInputField = Selector('span').withAttribute('class', /select2-dropdown.*/ ).child('span').withAttribute('class', /select2-search.*/ ).child('input').withAttribute('class', 'select2-search__field' );
Дополнительная информация: Я использую ту же логику на той же странице:
kurzbezeichnungField = Selector('input').withAttribute('name', /.*aeAbbreviation.*/);
...
await t.click( kurzbezeichnungField )
.typeText( kurzbezeichnungField, 'xxxWWW' )
, и это прекрасно работает. Версия Node.js: v10.16.3 Версия Testcafe: 1.5.0