← До пошуку

Конспект і таймкоди

0:00

Пошук за HTML tag

Автор представляє односторінкову CSS/XPath шпаргалку для подальшого доповнення. Найпростіший CSS-селектор — ім’я tag, наприклад div, script, a, li або form. Такий запит знаходить усі елементи відповідного tag і зазвичай потребує додаткового звуження. У DevTools search треба відрізняти результати CSS-запиту від звичайного текстового пошуку.

2:20

`id`, attributes і частковий збіг

#search знаходить елемент з id="search". Довільний attribute записується у квадратних дужках: [name='viewport']. Коли значення має стабільну частину та змінний hash, оператор *= дає пошук за підрядком. Це корисно для generated attributes у frontend frameworks, але стабільна частина має бути досить специфічною, щоб не отримати кілька збігів.

4:45

Classes і комбінування ознак

Елемент за class шукається через .class-name або attribute selector на кшталт [class*='class-name']. Два classes одного елемента записуються без пробілу: .first.second. Tag та id або attribute також можна комбінувати, наприклад turbo-frame#global_search_results. Якщо attribute value містить пробіл або спеціальні символи, його треба брати в лапки. У Java-рядку single quotes всередині CSS зменшують кількість escaping.

7:55

Descendants, direct children і кілька attributes

Пробіл між двома CSS-селекторами знаходить descendant на будь-якій глибині. > обмежує пошук direct child на наступному рівні DOM. Кілька attributes одного елемента можна послідовно додати без пробілів, щоб звузити результат до елемента, який одночасно відповідає всім умовам.

Комбінатор + вибирає adjacent sibling: елемент, який розташований одразу після іншого елемента на тому самому DOM-рівні. Це дозволяє знайти input або container відносно стабільного label. Такий локатор залежить від порядку в DOM, тому перед використанням треба перевірити структуру, а не лише візуальне розташування.

11:35

XPath для parent і ancestor

CSS зручно рухається вниз або між siblings, але в показаному сценарії не дає зручного способу піднятися до parent або далекого ancestor. XPath дозволяє знайти стабільний label, перейти до parent або вибрати ancestor з потрібним id, а вже в його межах знайти input. У фінальному прикладі так знаходиться hidden token input, після чого Selenide getValue() зчитує значення його value attribute.