Переключить фокус на вновь открытую вкладку в Chrome - селен - PullRequest
1 голос
/ 13 апреля 2020

Я пытаюсь достичь следующего потока в селене,

  1. нажмите на ссылку, чтобы открыть новую вкладку (child1) из родительского окна
  2. закрыть драйвер (child1) после выполнение определенных действий
  3. Снова откройте ту же ссылку (child1), чтобы выполнить другой набор действий

Я могу успешно выполнить первые два шага, переключив фокус. Но я застрял на третьем шаге, где я не могу сосредоточиться на той же вновь открывшейся вкладке. Я получаю следующую ошибку: org.openqa.selenium.StaleElementReferenceException: ссылка на устаревший элемент: элемент не прикреплен к документу страницы

public class abc {

String currentWindow = driver.getWindowHandle();

public void action1() {

//Click on main menu that open a new tab 
for (String handle : driver.getWindowHandles()) {
        if (!handle.equals(currentWindow)) {
            driver.switchTo().window(handle);
        }

//Perform the actions 
driver.close();
driver.switchTo().window(currentWindow);

}

public void action2(){

//Click on main menu which reopen the same tab
for (String handle : driver.getWindowHandles()) {
                if (!handle.equalsIgnoreCase(currentWindow)) {
                    System.out.println("Port Response : switch focus");
                    driver.switchTo().window(handle);
                    break;
                }
            }
//perform a set of actions 
driver.close();
driver.switchTo().window(currentWindow);
}

}//end of abc

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...