单击按钮后,WebDriver切换到浏览器

时间:2015-05-12 14:42:56

标签: java selenium-webdriver

将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);


     }

Java Selenium

2 个答案:

答案 0 :(得分:1)

driver.getWindowHandles()不保证任何订单,它还包括当前窗口(父亲)。

所以不要只是切换到窗口

你需要检查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
       }
  }

答案 1 :(得分:0)

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

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

相关问题