CSS attribute matching
Порівнює id shorthand, substring match і комбінування tag, classes та attribute.
Кожен selector знаходить лише intended element у відповідному DOM fixture.
3. Селектори та пошук елементів →Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Порівнює id shorthand, substring match і комбінування tag, classes та attribute.
Кожен selector знаходить лише intended element у відповідному DOM fixture.
3. Селектори та пошук елементів →Python Tutorial охоплює control flow, data structures, functions/modules, files, exceptions, classes та standard library як базові навчальні теми для practical programming tasks.
Який рівень програмування потрібен automation engineer →Описує binding instance methods, self convention і межі private variables у Python.
__init__, self, page та принципи ООП → Першоджерело ↗Підтверджує й актуалізує поняття уроку: @dataclass / frozen.
3. Рефакторинг: Faker, DataClass, Fixtures → Першоджерело ↗Елемент за 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.
У `try` розміщують лише операцію, яка очікувано може впасти, а `except ValueError` обробляє конкретний failure type. Широке `except Exception: pass` стирає сигнал і ускладнює debugging. Selenium, filesystem, network і parsing мають різні exception classes, які слід розрізняти.
Chrome DevTools дозволяє подивитися accessibility tree й accessible name, навіть якщо значення неочевидне з HTML. Текстові locators зручні, доки labels, placeholders і переклади стабільні. Для багатомовного продукту або content, який окремо змінює контент-команда, стабільний `data-testid` часто кращий. Атрибути можуть рендеритися по-різному залежно від frontend framework, а generated classes та IDs змінюватися між builds, тому вибір залежить від реального контракту команди.
Наслідування корисне для невеликої справді спільної поведінки, наприклад `open()` або `is_loaded()` у base page. Для сторінки, що складається з кількох незалежних components, composition простіша: page тримає потрібні objects і делегує їм роботу. Це уникає multiple inheritance та великих base classes, зміна яких ламає багато несуміжних сторінок.
[Дивитися з 42:15](https://www.youtube.com/watch?v=crzGm6nzfbU&t=2535s). Без чіткого плану той самий prompt може щоразу змінювати різні files, selectors, components або classes, особливо у великій codebase. Тому спочатку фіксують місце й межі зміни, а реалізацію запускають у новому контексті вже за погодженим планом. Для професійного розвитку корисні не декларації про AI, а власні case studies: як було поставлено задачу, які gates захистили якість, що перевірено й які обмеження лишилися. Найпростіший спосіб отримати такий досвід — зробити невеликий власний інструмент, який розв'язує реальну особисту проблему.