Урок 05. Локаторы Selenium
⚡ Кратко: локаторы в Selenium 4
Локатор — способ однозначно найти элемент на странице. В Selenium 4 все стратегии поиска — через класс By: find_element(By.CSS_SELECTOR, "...") и find_elements(By.XPATH, "...").
- By.ID — самый надёжный, если ID уникален
- By.CSS_SELECTOR — быстро, гибко, читаемо; рекомендуется по умолчанию
- By.XPATH — мощный, поиск по тексту и сложным условиям, медленнее CSS
find_element()→ первый WebElement илиNoSuchElementExceptionfind_elements()→ список WebElement или пустой список[]element.is_displayed()→ True/False — виден ли элемент
Топ-3 ошибки: 1) Хрупкий XPath из DevTools «Copy XPath» — сломается при любом изменении DOM. 2) By.CLASS_NAME не работает с составными классами. 3) Забыть обработать NoSuchElementException от find_element().
📖 О чём этот урок
Этот урок посвящён локаторам — ключевому инструменту Selenium. Прежде чем взаимодействовать с кнопкой, полем ввода или ссылкой, нужно найти элемент на странице. Именно для этого служат стратегии поиска через класс By.
Вы узнаете, как работать с DevTools для поиска локаторов, освоите CSS-селекторы и XPath, научитесь выбирать надёжные локаторы и обрабатывать ситуации, когда элемент не найден.
Что изучим
- Что такое локатор веб-элемента
- Как найти локатор в DevTools (браузере)
- Все стратегии
By.*: ID, NAME, CLASS_NAME, TAG_NAME, LINK_TEXT, PARTIAL_LINK_TEXT, CSS_SELECTOR, XPATH - CSS-селекторы: по ID, классу, атрибуту, вложенности, частичному совпадению
- XPath: синтаксис, поиск по тексту, функция
contains() - Методы
find_element()иfind_elements()— отличия - Обработка
NoSuchElementException - Метод
is_displayed()и свойство.text - Как выбирать надёжные локаторы
📚 Что повторить перед изучением
- ← Урок 04: Summary session 2 — повторение основ Selenium
- Запуск браузера:
driver = webdriver.Chrome(),driver.get(url),driver.quit() - Фикстуры pytest:
@pytest.fixture,yield - Основы HTML: теги, атрибуты
id,class,name,href - Основы CSS: синтаксис селекторов (
#id,.class,[attr])
🎯 Что изучать дальше
- → Урок 06: Summary session 3 — повторение локаторов
- Явные ожидания:
WebDriverWait+expected_conditions - Действия с элементами:
send_keys(),clear(),submit() - ActionChains: наведение, drag-and-drop, двойной клик