单击按钮后 WebDriver 切换到打开的浏览器

WebDriver switch to browser opened after click on button

将 Selenium Webdriver 与 JAVA 结合使用,我正在尝试自动化一项功能,我必须打开一个新选项卡才能在那里执行一些操作并返回到上一个选项卡(父亲)。

他失去了会话和错误。

//当我点击这里时它打开模式

driver.findElement(By.name("btnSimulateDK")).click();

我尝试过这种方式,如果我在此页面上输入登录名和密码错误,它可能已经打开当前会话并显示我可以执行的活动。

String winHandleBefore = driver.getWindowHandle();
            driver.findElement(By.name("btnSimulateDK")).click();

                        for(String winHandle : driver.getWindowHandles()){
                           if (!winHandle.equals(winHandleBefore))      
                    driver.switchTo().window(winHandle);

                      if(driver.getTitle().equals("Title of target window")){
                            //perform operation on target window
                           }
                      }
                        driver.switchTo().window(winHandleBefore);


     }

driver.getWindowHandles() 不保证任何顺序,它还包括当前的 window(父亲)。

所以而不是仅仅切换到 window

您需要检查 winHandle 是否不等于 winHandleBefore

如果是,则只执行 switchTo()

此外,最好确保您登陆了正确的页面。

喜欢

  for(String winHandle : driver.getWindowHandles()){
       if (!winHandle.equals(winHandleBefore))      
          driver.switchTo().window(winHandle);

       if(driver.getTitle().equals("Title of target window")){
        //perform operation on target window
       }
  }

IEDRIVER在打开其他会话时出现问题,只需在任务管理器中关闭它们即可解决问题。

session cookie lost when click made to a link that opens a window with window.open()