1. Відкриття веб-сторінок: перші кроки
Якщо ти колись мріяв стати володарем веб-сторінок, то ти на правильній лекції. Сьогодні ми будемо відкривати веб-сторінки за допомогою Selenium і навчимося взаємодіяти з ними. Уяви, що ти керуєш браузером, як диригент оркестром, тільки оркестр — це інтернет, а нотний запис — це Python-код. Давай почнемо наш концерт!
Перш ніж ми зможемо взаємодіяти з веб-сторінкою, нам потрібно її відкрити, правда? Це як потрапити до бібліотеки перед тим, як знайти книгу. У Selenium відкриття веб-сторінок здійснюється за допомогою драйвера браузера. На даний момент ми припускаємо, що у тебе вже встановлені Selenium та відповідний веб-драйвер (наприклад, ChromeDriver або GeckoDriver). Якщо ти пройшов попередню лекцію, то знаєш, як це зробити. Якщо ні, повернися і перечитай її ще раз.
Давайте розглянемо, як почати з простого відкриття веб-сторінки:
from selenium import webdriver
# Створюємо екземпляр веб-драйвера для Chrome
driver = webdriver.Chrome()
# Відкриваємо веб-сторінку
driver.get('https://www.example.com')
# Виводимо заголовок сторінки в консоль
print(driver.title)
# Закриваємо браузер
driver.quit()
Що відбувається в коді:
- Імпортуємо webdriver: Це серце Selenium, що дозволяє керувати браузером.
- Створюємо драйвер: Тут ми створюємо об'єкт драйвера для Chrome. Це може бути будь-який браузер, для якого у тебе є драйвер.
- Відкриваємо сторінку: Метод
get()завантажує сторінку, вказану за URL. - Отримуємо заголовок: За допомогою
driver.titleми можемо вивести заголовок поточної сторінки. - Закриваємо браузер: Метод
quit()завершує роботу з браузером.
Ну ось, ми з тобою відкрили першу веб-сторінку! Це перший крок до світового панування... еее... я хотів сказати, до автоматизації!
2. Навігація та робота з вкладками
Просто відкрити сторінку недостатньо. Часто нам потрібно переміщатися між сторінками або навіть відкривати кілька вкладок. Уяви, що ти мандрівник, який може миттєво телепортуватися між місцями. З Selenium це можливо.
Перехід між сторінками
Перехід з однієї сторінки на іншу такий же простий, як і відкриття:
# Перехід на іншу сторінку
driver.get('https://www.example.org')
# Використовуємо метод back() для повернення на попередню сторінку
driver.back()
# Використовуємо метод forward() для переходу вперед
driver.forward()
Робота з вкладками
Як щодо відкриття нової вкладки? Це як взяти з собою ноутбук у бібліотеки різних міст!
# Відкриваємо нову вкладку та перемикаємося на неї
driver.execute_script("window.open('https://www.example.com', '_blank');")
driver.switch_to.window(driver.window_handles[1])
# Повертаємося на першу вкладку
driver.switch_to.window(driver.window_handles[0])
Пояснення:
-
execute_script(): Використовується для виконання JavaScript коду в браузері. Тут ми відкриваємо нову вкладку. -
switch_to.window(): Цей метод дозволяє перемикатися між вкладками. Ми використовуємоwindow_handlesдля доступу до списку всіх відкритих вкладок.
3. Взаємодія з веб-сторінкою
Тепер, коли ми навчилися відкривати і навігувати сторінками, давай перейдемо до їхньої безпосередньої взаємодії — як справжній програміст! Це як навчитися танцювати з кожною веб-сторінкою і робити це майстерно.
Інтерфейс взаємодії
Переходимо до прикладу, як взаємодіяти з елементами на сторінці. Наприклад, пошук текстового поля і введення тексту:
# Знаходимо елемент за його ім'ям
search_box = driver.find_element_by_name('q')
# Вводимо текст у знайдене текстове поле
search_box.send_keys('Selenium Python')
# Знаходимо кнопку пошуку і клікаємо по ній
submit_button = driver.find_element_by_name('btnK')
submit_button.click()
Пояснення:
-
find_element_by_name(): Метод, що використовується для знаходження елемента за ім'ям. Тут ми шукаємо пошукове текстове поле. -
send_keys(): Дозволяє вводити текст у знайдений елемент. -
click(): Використовується для симуляції натискання на елемент, як-от кнопку.
Додаткові методи
Для складніших взаємодій з елементами існує багато методів. Переглянь документацію Selenium для глибшого вивчення. Тут ми розглянемо кілька основних.
-
find_element_by_id(): Знаходить елемент за ID. -
find_element_by_class_name(): Знаходить елемент за класом. -
find_element_by_css_selector(): Використовує CSS селектори для пошуку.
Тепер ти можеш відкривати і досліджувати сторінки, як справжній веб-мандрівник! Не бійся експериментувати і пробувати щось нове. Як кажуть, "помилки — це сходинки на шляху до успіху", особливо якщо ти впевнений, що твій код надійний і перевірений!
Типові помилки
Робота з Selenium може бути трохи схожою на ходіння по мінному полю, якщо ти не знаєш основних підводних каменів. Одна з найпоширеніших помилок — це забути завершити сесію браузера. Це може призвести до зависання процесів браузера в пам'яті. Завжди використовуй driver.quit() в кінці свого скрипта.
Ще одна біль програміста в Selenium — зміна структур веб-сторінок. Якщо елемент було знайдено за селектором, а розробник сайту змінив структуру HTML, твій скрипт раптово перестане працювати. Це як якщо б тебе раптово закрили двері, коли ти намагався увійти до кімнати. Важливо писати гнучкий код і регулярно оновлювати його відповідно до змін на сайті.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ