История браузера и работа с вкладками в Selenium

Работаем с историей браузера, окнами и вкладками в Selenium

История браузера — это список посещенных пользователем страниц, который используется для перемещения вперед и назад в браузере. В Selenium WebDriver существуют методы для управления историей браузера, рассмотрим, как их использовать.

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

  • driver.back(): метод позволяет вернуться на одну страницу назад в истории браузера.
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")

# переходим на другую страницу
driver.get("https://www.example.com")

# возвращаемся назад
driver.back()
  • driver.forward(): метод используется для перехода на одну страницу вперед в истории браузера, если такая страница существует.
# возвращаемся на предыдущую страницу
driver.back()

# двигаемся вперед
driver.forward()
  • driver.refresh(): этот метод перезагружает текущую страницу, эффективно обновляя её содержание.
# обновление текущей страницы
driver.refresh()

Как сохранить и восстановить историю браузера

WebDriver не предоставляет нативных методов для сохранения и восстановления истории браузера, но это можно сделать с помощью кук (cookies) и URL.

# сохраняем текущий URL
current_url = driver.current_url

# сохраняем cookies
current_cookies = driver.get_cookies()

# восстанавливаем историю позже
driver.get(current_url)
for cookie in current_cookies:
    driver.add_cookie(cookie)

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

Управление вкладками и окнами браузера — это ещё одна ключевая задача, которую можно решить с помощью Selenium WebDriver. Рассмотрим методы для работы с множественными вкладками и окнами.

Основные методы для работы с вкладками и окнами

  • driver.window_handles: свойство window_handles возвращает список всех идентификаторов окон, открытых в текущем экземпляре драйвера.
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")

# Получение списка идентификаторов окон
window_ids = driver.window_handles
print(window_ids)
  • driver.switch_to.window(window_handle): этот метод позволяет переключаться между окнами и вкладками. window_handle — это идентификатор окна, на который нужно переключиться.
# Открываем новую вкладку
driver.execute_script("window.open('https://www.example.com');")

# Получаем список идентификаторов окон и переключаемся на новую вкладку
window_ids = driver.window_handles
driver.switch_to.window(window_ids[1])

# Возвращаемся на первую вкладку
driver.switch_to.window(window_ids[0])
  • driver.close(): метод закрывает текущее активное окно браузера.
# Закрыть текущую вкладку
driver.close()
  • driver.quit(): этот метод закрывает все открытые окна и завершает сессию WebDriver.
# Закрыть все окна и завершить сессию
driver.quit()

Заключение

В этой статье мы рассмотрели два важных аспекта автоматизации веб-тестирования с помощью Selenium WebDriver: управление историей браузера и работа с вкладками и окнами. Эти темы являются ключевыми при создании сложных и динамичных тестовых сценариев.

Управление историей браузера включает в себя навигацию по уже посещенным страницам, что может быть критически важным для тестирования функционала, связанного с пользователями, которые вернулись на сайт или двигаются вперед и назад по истории браузера.

Работа с вкладками и окнами также не менее важна, особенно при тестировании сайтов и приложений, которые открывают новые окна или вкладки в ответ на действия пользователя. Методы и функции, предоставляемые Selenium для этих задач, позволяют легко переключаться между окнами и вкладками, открывать и закрывать их.

Содержание: