Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - QA Co-pilot
Added 06 Dec 2025

QA Co-pilot

@qa_copilot
Number of subscribers: 93
Photos: 302
Links: 47
Description:
QA Co-pilot 🚀 Ваш другий пілот у світі тестування. 👨‍💻 Для кого: Для тестувальників-практиків, які хочуть рости. 🎯 Про що: Делегуємо рутину нейромережам, прискорюємо роботу та звільняємо час на головне. ❌ Чого тут немає: Нудної теорії та води.
Source

QA Co-pilot | Ультимативна Шпаргалка: Стан елемента в DOM (Visible vs Attached)Приві...

Telegram community logo - QA Co-pilot QA Co-pilot @qa_copilot
18 Views/Reach 2026-07-08 11:03 Message №352
📝 Ультимативна Шпаргалка: Стан елемента в DOM (Visible vs Attached)Привіт, екіпаж! Скільки разів ви ловили помилку Element is not visible, хоча в DevTools його чітко видно в HTML-коді? Сьогодні розбираємо життєвий цикл елемента на сторінці. Це база, без якої ваші асерти (перевірки) завжди будуть нестабільними. ☕️У сучасних інструментах (Playwright, Cypress) елемент перед кліком проходить 4 стадії зрілості. Знати їх — обов'язок QA.👻 Attached (Прикріплений)Елемент фізично існує в DOM-дереві.Пастка: Він може бути повністю прозорим (opacity: 0), мати display: none або нульовий розмір (0x0). Ви бачите його код у DevTools, але юзер на екрані його не бачить.(В Angular це зазвичай відбувається при використанні [hidden]="true"). 👁Visible (Видимий)Елемент прикріплений (Attached), має реальні розміри (bounding box не нульовий) і не захований стилями.Пастка: Він видимий, але може бути перекритий іншим елементом зверху (наприклад, напівпрозорим лоадером або невидимим тултипом). 🟢Enabled (Активний)Елемент видимий, не перекритий, і на ньому немає атрибута disabled. Тільки на цій стадії з ним можна взаємодіяти. 🛑 Stable (Стабільний)Елемент повністю завершив свою CSS-анімацію. Він більше не летить через половину екрану. Якщо фреймворк спробує клікнути до цієї стадії — він просто клікне в порожнечу. Золоте правило перевірок (Asserts):Тестуючи зникнення елемента, завжди питайте розробників, ЯК він зникає.Якщо використовується умовний рендеринг (наприклад, новий синтаксис @if або старий *ngIf в Angular) — елемент ПОВНІСТЮ видаляється з DOM. Перевіряємо так:await expect(locator).toHaveCount(0) або toBeAttached({ attached: false }). Якщо ж елемент просто ховається через CSS — він залишається Attached, але перестає бути Visible. Перевіряємо так:await expect(locator).toBeHidden().А ви плутали Attached і Visible? 👇🔥 — Знаю цю базу, мої тести надійні як швейцарський годинник!👀 — Постійно ліплю .toBeVisible() на все підряд і страждаю...🤯 — Чекайте, тобто елемент може бути в DOM, але не бути Visible?!