无法切换到在selenium中打开的新窗口

时间:2015-08-12 09:29:31

标签: selenium selenium-webdriver

在我的应用程序中,我可以看到打开了四个不同的窗口。但是当我使用getWindowHandles()时,我只能获得三个窗口引用。

点击按钮后会打开一个新窗口。当我检查按钮后,观察代码,点击后打开一个新窗口。

  <input title="Change Credit File (Move Document)" style="width: 140px;" onclick="setAssociationsCreditFile1('3577989','emsprod3572943','abc/123/2385','Record','1','veepuris','abc','http://FTC-abc401.ad.abc.net/','N');" type="button" value="Change Association"/>

我使用以下代码切换到新窗口openend。

for(String winHandle : driver.getWindowHandles()){
    driver.switchTo().window(winHandle);
}

请告诉我如何切换到已打开的新窗口。

3 个答案:

答案 0 :(得分:0)

尝试:

driver.SwitchTo().Window(driver.WindowHandles.ToList().Last());

答案 1 :(得分:0)

我实现这一点的方式如下:

  Set<String> handles = drv.getWindowHandles();

  <action that opens new window>

  for(String handle : drv.getWindowHandles())
        if(!handles.contains(handle))
            drv.switchTo().window(handle);

如果你仍然只有3个句柄,你是否可以启动一个新的驱动程序实例来创建一个新的页面?

答案 2 :(得分:0)

您可以通过提供条件切换到最后一个窗口。

//List of window handles
Set<String> list = driver.getWindowHandles();
int size  = list.size();

for(int i=0; i< size; i++){
    String childWindow = list.get(i);
    if(i==size-1){
       driver.switchTo().window(childWindow);
    }else {
       list.remove(childWindow);
    }
}