Вы должны использовать 'обработчик' для управления окнами.
В некоторых веб-приложениях есть много фреймов или несколько окон.Selenium WebDriver назначает буквенно-цифровой идентификатор каждому окну, как только создается экземпляр объекта WebDriver.Этот уникальный буквенно-цифровой идентификатор называется дескриптором окна.Selenium использует этот уникальный идентификатор для переключения управления между несколькими окнами.Проще говоря, каждое уникальное окно имеет уникальный идентификатор, поэтому Selenium может различать, когда он переключает элементы управления из одного окна в другое.
Команда GetWindowHandle Цель: получить дескриптор окнатекущего окна.
String handle= driver.getWindowHandle();//Return a string of alphanumeric window handle
Команда GetWindowHandles Назначение: получить дескриптор окна всех текущих окон.
Set<String> handle= driver.getWindowHandles();//Return a set of window handle
Команда SwitchTo Window Назначение: WebDriverподдерживает перемещение между именованными окнами с помощью метода «switchTo».
driver.switchTo().window("windowName");
или
В качестве альтернативы, вы можете передать «дескриптор окна» в «switchTo ()».window () ».Зная это, можно перебирать каждое открытое окно следующим образом:
for (String handle : driver.getWindowHandles()) {
driver.switchTo().window(handle);}
или
Переключение между окнами с помощью итераторов:
driver.findElement(By.id(“id of the link which opens new window”)).click();
//wait till two windows are not opened
waitForNumberofWindowsToEqual(2);//this method is for wait
Set handles = driver.getWindowHandles();
firstWinHandle = driver.getWindowHandle(); handles.remove(firstWinHandle);
String winHandle=handles.iterator().next();
if (winHandle!=firstWinHandle){
//To retrieve the handle of second window, extracting the handle which does not match to first window handle
secondWinHandle=winHandle; //Storing handle of second window handle
//Switch control to new window
driver.switchTo().window(secondWinHandle);
Подробности здесь: https://www.toolsqa.com/selenium-webdriver/switch-commands/