2015-05-12 54 views
0

使用Selenium Webdriver与JAVA,我试图自动化一个功能,我必须打开一个新的标签在那里做一些操作,并返回到前一个标签(父亲)。WebDriver切换到浏览器打开后点击按钮

他失去了会话和错误。

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

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

回答

1

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

因此而不仅仅是切换到窗口

你需要检查窗口句柄不等于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 
     } 
    } 
+0

我改变了代码,并给出了同样的错误,编辑与新代码 –

+0

你可以请张贴你做了什么错误消息的问题? – Kavan

相关问题