QA The Other WayЗабезпечення якості в епоху AI-автоматизації. QA The Other Way.
Практичне QA

Два збіги потребують рішення про продукт.

Оберіть потрібний запис для повторюваної кнопки до успішного кліку.

5 хв. читанняQA The Other Way
Дві кнопки Apply, одна в області щотижневих оновлень.
Авторська редакційна ілюстрація.
Ілюстративне відео до цієї статті. англійський текст на екрані; вибрати субтитри для цієї мови.

Перекладне видання. Технічні ідентифікатори залишаються в оригінальній формі.

Оберіть потрібний запис для повторюваної кнопки до успішного кліку.
Локальний приклад із вигаданими даними, не інтерфейс клієнта чи постачальника.

Сторінка налаштувань має дві кнопки Apply: щотижневі оновлення та повідомлення безпеки. Створений тест отримує помилку строгого вибору. first() дозволяє клік, але порядок документа обирає змінену настройку. Тесту потрібен конкретний запис.

Посібник із локаторів описує строгість операцій для одного елемента. Кілька збігів роблять клік неоднозначним. count() допускає кілька елементів. Число два й помилка кліку сумісні.

Розгляньте обидва збіги

Читайте кнопки разом із заголовками, підписами й записами. Повтор у різних картках може бути правильним, випадковий дублікат в одній картці дефектом. Перевірте вимогу перед зміною селектора.

Вигаданий приклад має дві іменовані області з Apply та локальним статусом. Немає сервера, справжнього акаунта або збереженої настройки. Перевіряємо зміну потрібної області та незмінність сусідньої.

const weekly = page.getByRole('region', { name: 'Weekly updates' });
const apply = weekly.getByRole('button', { name: 'Apply', exact: true });
await expect(apply).toHaveCount(1);
await apply.click();
await expect(weekly.getByRole('status')).toHaveText('Applied');

Потрібні раннер Playwright та імпорт expect. Фікстура задає ім'я області й обробник кнопки. Статус доводить локальний ефект, не збереження чи доставку повідомлення.

Обґрунтуйте область

Оберіть батьківський елемент за записом або компонентом, який мав на увазі користувач. Тут працює доступне ім'я області. Іншому інтерфейсу може знадобитися рядок зі сталим ім'ям запису чи погодженим тестовим ідентифікатором. Перевірте ідентичність після сортування та вставки.

Точний текст не розрізняє дві однакові кнопки в одній області. Кількість виявляє хибне очікування унікальності до дії. Перевіряйте також глобальну кількість, якщо повторювана структура є вимогою.

Локатор визначається під час використання. Сторінка може змінитися між спостереженнями: підрахунок не блокує DOM-вузол. Клік Playwright виконує власні перевірки. Попередня кількість не гарантує незмінної сторінки.

Позиція потребує контракту порядку

first(), last() та nth() можуть обрати інший елемент після зміни сторінки. Позиція допустима за явною вимогою до порядку, як перший рейтинговий результат. Перевіряйте порядок та ідентичність. Зникнення помилки не обґрунтовує вибір.

Локальний тест підтверджує два глобальні збіги й перехоплює помилку строгого кліку без зміни статусів. Потім обмежує дію Weekly updates та перевіряє незмінність безпеки. Це відтворювана перевірка конкретної межі, не діагноз кожної помилки строгості.

Запишіть компонент, причину сталості його імені та очікувану зміну. AnyTest описує дослідження застосунку й тести для людського огляду. Звіряйте повторювані кнопки з потрібним записом. Конкретний алгоритм вибору AnyTest тут не заявлений.

Загальні запитання

Чи розрізняє точний текст однакові підписи?

Ні. Обмежте також потрібну область або запис.

Чи завжди first() помилковий?

Ні. Потрібні явна вимога до порядку й перевірена ідентичність.

Джерела