Один из важных аспектов автоматизированного тестирования веб-приложений — это работа с формами и полями ввода. В процессе тестирования нередко возникает необходимость очистить значения в этих полях для подготовки к следующему шагу или проверке. Playwright предоставляет несколько способов для этого, позволяя эффективно управлять состоянием элементов на странице.
Playwright включает в себя несколько методов, которые могут
использоваться для очистки полей ввода. Основные способы — это
использование метода fill(), clear() и
манипуляции с клавишами клавиатуры. Каждый из этих методов может быть
использован в зависимости от контекста задачи.
fill()Метод fill() позволяет не только заполнять поля ввода,
но и очищать их, если передать пустую строку в качестве аргумента. Это
наиболее простой и часто используемый способ очистки поля.
await page.fill('input[name="username"]', '');
В данном примере поле ввода, соответствующее селектору
input[name="username"], будет очищено. Этот метод
гарантирует, что текущее содержимое поля будет заменено на пустую
строку.
clear()Хотя метод clear() является частью некоторых библиотек
для работы с браузерными автоматизациями, в Playwright такой функции нет
напрямую. Однако, часто бывает достаточно использования
fill() с пустым значением для аналогичного результата.
Для симуляции поведения очистки поля можно воспользоваться методом, который поочередно стирает символы из поля ввода. Для этого сначала следует получить текущее значение поля и затем поочередно удалять символы.
const inputField = await page.$('input[name="username"]');
const value = await inputField.inputValue();
for (let i = 0; i < value.length; i++) {
await inputField.press('Backspace');
}
Этот подход требует больше операций, чем просто использование метода
fill(), но он позволяет более точно моделировать процесс
удаления символов с клавиатуры.
Для имитации действий пользователя можно использовать клавиши клавиатуры. Например, при очистке поля можно воспользоваться клавишей “Backspace” или “Delete”. Это может быть полезно в тестах, где важно воспроизвести точные действия пользователя.
await page.click('input[name="username"]');
await page.keyboard.press('Control+A');
await page.keyboard.press('Backspace');
В этом примере сначала производится клик по полю ввода для
фокусировки на нем, затем с помощью комбинации клавиш
Ctrl+A выделяется весь текст в поле, после чего с помощью
клавиши Backspace весь текст удаляется.
Иногда поля ввода могут быть скрытыми (например, через
display: none или visibility: hidden). В таких
случаях методы вроде fill() или click() не
смогут взаимодействовать с элементом напрямую. Чтобы очистить такие
поля, необходимо сначала убедиться, что элемент доступен для
взаимодействия.
Пример с проверкой доступности поля и его очисткой:
const inputField = await page.$('input[name="hiddenField"]');
const isVisible = await inputField.isVisible();
if (isVisible) {
await inputField.fill('');
}
Здесь проверяется видимость элемента с помощью метода
isVisible(), и если элемент доступен, то очищается его
содержимое.
Для сценариев, где необходимо очистить несколько полей формы, можно использовать подход с массивом элементов. Пример:
const inputFields = await page.$$('[data-test="form-input"]');
for (const input of inputFields) {
await input.fill('');
}
В этом случае все поля, имеющие атрибут
data-test="form-input", будут очищены, что может быть
полезно в тестах с большими формами или несколькими полями ввода.
После выполнения действия, очищающего поле, иногда необходимо
подождать, пока изменения отразятся в DOM или состояние страницы будет
обновлено. Для этого можно использовать методы ожидания, такие как
waitForTimeout() или другие подходящие методы из
Playwright.
Пример использования с ожиданием:
await page.fill('input[name="username"]', '');
await page.waitForTimeout(500); // Ожидаем, пока изменения отразятся
fill() с пустыми
строками является самым простым и быстрым способом очистки поля
ввода. Он работает в большинстве случаев и гарантирует, что поле будет
очищено.Очистка полей ввода является стандартной задачей в автоматизированном тестировании с помощью Playwright. В зависимости от требований задачи, можно использовать различные подходы — от простого заполнения поля пустой строкой до более сложных сценариев, связанных с удалением символов. Правильный выбор метода зависит от конкретных условий теста и поведения тестируемого приложения.