JavaRush /Курсы /Python SELF /Основные действия в браузере

Основные действия в браузере

Python SELF
35 уровень , 2 лекция
Открыта

1. Открытие веб-страниц: первые шаги

Если вы когда-либо мечтали стать повелителем веб-страниц, то вы находитесь на правильной лекции. Сегодня мы будем открывать веб-страницы с помощью Selenium и учиться взаимодействовать с ними. Представьте, что вы управляете браузером, как дирижер оркестром, только оркестр — это интернет, а нотная запись — это Python код. Давайте начнем наш концерт!

Прежде чем мы сможем взаимодействовать с веб-страницей, нам нужно ее открыть, верно? Это как попасть в библиотеку перед тем, как найти книгу. В Selenium открытие веб-страниц осуществляется с помощью драйвера браузера. На данный момент мы предполагаем, что у вас уже установлены Selenium и соответствующий веб-драйвер (например, ChromeDriver или GeckoDriver). Если вы прошли предыдущую лекцию, вы знаете, как это сделать. Если нет, вернитесь и прочитайте ее еще раз.

Давайте рассмотрим, как начать с простого открытия веб-страницы:

Python

from selenium import webdriver

# Создаем экземпляр веб-драйвера для Chrome
driver = webdriver.Chrome()

# Открываем веб-страницу
driver.get('https://www.example.com')

# Выводим заголовок страницы в консоль
print(driver.title)

# Закрываем браузер
driver.quit()

Что происходит в коде:

  1. Импортируем webdriver: Это сердце Selenium, позволяющее управлять браузером.
  2. Создаем драйвер: Здесь мы создаем объект драйвера для Chrome. Это может быть любым браузером, для которого у вас есть драйвер.
  3. Открываем страницу: Метод get() загружает страницу, указанную по URL.
  4. Получаем заголовок: С помощью driver.title мы можем вывести заголовок текущей страницы.
  5. Закрываем браузер: Метод quit() завершает работу с браузером.

Ну вот, мы с вами открыли первую веб-страницу! Это первый шаг к мировому господству... эээ... я хотел сказать, к автоматизации!

2. Навигация и работа с вкладками

Просто открыть страницу недостаточно. Часто нам нужно перемещаться между страницами или даже открывать несколько вкладок. Представьте, что вы путешественник, который может мгновенно телепортироваться между местами. С Selenium это возможно.

Переход по страницам

Переход с одной страницы на другую так же прост, как и открытие:

Python

# Переход на другую страницу
driver.get('https://www.example.org')

# Используем метод back() для возврата на предыдущую страницу
driver.back()

# Используем метод forward() для перемещения вперед
driver.forward()

Работа с вкладками

Как насчет открытия новой вкладки? Это как взять с собой ноутбук в библиотеках разных городов!

Python

# Открываем новую вкладку и переключаемся на нее
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. Взаимодействие с веб-страницей

Теперь, когда мы с вами научились открывать и навигировать по страницам, давайте перейдем к их непосредственному взаимодействию — как настоящий программист! Это как научиться танцевать с каждой веб-страницей и делать это мастерски.

Интерфейс взаимодействия

Перейдем к примеру, как взаимодействовать с элементами на странице. Например, поиск текстового поля и ввод текста:

Python

# Находим элемент по его имени
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, ваш скрипт внезапно перестанет работать. Это как если бы вам внезапно закрыли дверь, когда вы пытались войти в комнату. Важно писать гибкий код и регулярно обновлять его в соответствии с изменениями на сайте.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ