在我的应用程序中,我可以看到打开了四个不同的窗口。但是当我使用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);
}
请告诉我如何切换到已打开的新窗口。
答案 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);
}
}