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