Освоение переключения вкладок в Selenium: подробное руководство с примерами кода

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

Метод 1: использование маркеров окон
Один из наиболее распространенных методов переключения вкладок — использование маркеров окон. Дескриптор окна — это уникальный идентификатор для каждого окна или вкладки браузера. Selenium предоставляет свойство window_handlesдля получения дескрипторов всех открытых окон. Вот пример:

# Get current window handle
current_window = driver.current_window_handle
# Open a new tab
driver.execute_script("window.open('https://www.example.com')")
# Get all window handles
window_handles = driver.window_handles
# Switch to the newly opened tab
for handle in window_handles:
    if handle != current_window:
        driver.switch_to.window(handle)
        break
# Perform actions on the new tab
# ...
# Switch back to the original tab
driver.switch_to.window(current_window)

Метод 2: использование индекса окна
Если вы знаете индекс вкладки, на которую хотите переключиться, вы можете использовать список window_handlesи переключаться на основе индекса. Вот пример:

# Open multiple tabs
driver.execute_script("window.open('https://www.example.com')")
driver.execute_script("window.open('https://www.google.com')")
driver.execute_script("window.open('https://www.github.com')")
# Switch to the second tab (index starts from 0)
driver.switch_to.window(driver.window_handles[1])
# Perform actions on the second tab
# ...
# Switch back to the first tab
driver.switch_to.window(driver.window_handles[0])
# Open multiple tabs
driver.execute_script("window.open('https://www.example.com')")
driver.execute_script("window.open('https://www.google.com')")
driver.execute_script("window.open('https://www.github.com')")
# Switch to the tab with the title 'Google'
for handle in driver.window_handles:
    driver.switch_to.window(handle)
    if 'Google' in driver.title:
        break
# Perform actions on the 'Google' tab
# ...
# Switch back to the original tab
driver.switch_to.window(driver.window_handles[0])

Не забудьте импортировать необходимые модули Selenium и настроить WebDriver перед выполнением примеров кода. Приятного переключения вкладок!