将焦点切换到Chrome-selenium中重新打开的选项卡

将焦点切换到Chrome-selenium中重新打开的选项卡,selenium,Selenium,我试图在selenium中实现以下流程 单击链接从父窗口打开新选项卡(child1) 执行某些操作后,关闭驱动器(儿童1) 再次打开同一链接(child1)以执行另一组操作 通过切换焦点,我能够成功完成前两步。但我被困在第三步,无法专注于同一个重新打开的选项卡。我得到下面的错误, org.openqa.selenium.StaleElementReferenceException:stale元素引用:元素未附加到页面文档 public class abc { String currentWin

我试图在selenium中实现以下流程

  • 单击链接从父窗口打开新选项卡(child1)
  • 执行某些操作后,关闭驱动器(儿童1)
  • 再次打开同一链接(child1)以执行另一组操作
  • 通过切换焦点,我能够成功完成前两步。但我被困在第三步,无法专注于同一个重新打开的选项卡。我得到下面的错误, org.openqa.selenium.StaleElementReferenceException:stale元素引用:元素未附加到页面文档

    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
    

    我希望创建的动作更像是一个可重用的独立动作,因此我希望关闭所有选项卡,然后重新打开它们以进行其他动作。请让我知道,如果你需要任何更多的细节

    当您获取StaleElementException时,必须再次运行getWindowHandles命令,然后切换到重新打开选项卡…@Amit,重新打开选项卡并尝试执行某些操作后,我收到此StaleElementException。请确保在与新选项卡上的元素交互之前使用显式等待。@supputuri我在切换焦点之前和之后添加了足够的等待。但还是不行。在上面的代码中,如果我注释掉action1并直接运行action2,它就会工作。所以代码没有问题。仅焦点我无法在选项卡之间正确切换。当您遇到StaleElementException时,必须再次运行getWindowHandles命令,然后切换到重新打开选项卡…@Amit,重新打开选项卡并尝试执行某些操作后,我收到此StaleElementException。请确保在与新选项卡上的元素交互之前使用显式等待。@supputuri我在切换焦点之前和之后添加了足够的等待。但还是不行。在上面的代码中,如果我注释掉action1并直接运行action2,它就会工作。所以代码没有问题。仅焦点我无法在选项卡之间正确切换。