← Назад к вопросам
Как работать с несколькими окнами браузера в Selenium?
1.8 Middle🔥 131 комментариев
#Selenium и UI автоматизация
Комментарии (1)
🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Работа с несколькими окнами браузера в Selenium
В Selenium WebDriver работа с несколькими окнами браузера — это важная задача, которая часто возникает при автоматизации веб-приложений, когда действия пользователя приводят к открытию новых окон или вкладок. Для эффективного управления этим механизмом необходимо понимать концепцию дескрипторов окон (Window Handles).
Что такое Window Handle?
Window Handle — это уникальный строковый идентификатор, который WebDriver присваивает каждому открытому окну браузера. Этот идентификатор используется для переключения между окнами. Даже если внешне окна выглядят одинаково, их дескрипторы всегда уникальны.
Основные методы для работы с окнами
// Пример на Java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.Set;
public class MultipleWindowsExample {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
// Открываем основное окно
driver.get("https://example.com");
String mainWindow = driver.getWindowHandle();
System.out.println("Основное окно: " + mainWindow);
// Открываем новое окно (например, через JavaScript)
((JavascriptExecutor)driver).executeScript("window.open('https://google.com','_blank');");
// Получаем все дескрипторы окон
Set<String> allWindows = driver.getWindowHandles();
System.out.println("Количество окон: " + allWindows.size());
// Переключаемся на новое окно
for(String window : allWindows) {
if(!window.equals(mainWindow)) {
driver.switchTo().