Java 如何在测试网站时聚焦新窗口

Java 如何在测试网站时聚焦新窗口,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在使用selenium测试intranet站点。我正在测试的网站仅在internet explorer 11中运行。我使用以下Java代码来管理windows: 公共类DMSBrowserTest{ 公共静态void main(字符串[]args)引发InterruptedException{ 字符串projectPath=System.getProperty(“user.dir”); System.setProperty(“webdriver.ie.driver”,projectPath+

我正在使用selenium测试intranet站点。我正在测试的网站仅在internet explorer 11中运行。我使用以下Java代码来管理windows:

公共类DMSBrowserTest{
公共静态void main(字符串[]args)引发InterruptedException{
字符串projectPath=System.getProperty(“user.dir”);
System.setProperty(“webdriver.ie.driver”,projectPath+“\\drivers\\iedriver\\IEDriverServer.exe”);
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“ignoreProtectedModeSettings”,真);
caps.setCapability(“initialBrowserUrl”http://myIntranet.htm");
WebDriver驱动程序=新的InternetExplorerDriver(caps);
驱动程序。获取(“http://myIntranet.htm");
设置winids=driver.getWindowHandles();
迭代器iterate=winids.Iterator();
String first_window=iterate.next();
winids=driver.getWindowHandles();
iterate=winids.iterator();
String second_window=iterate.next();
driver.switchTo().窗口(第二个窗口);
}
}
但是我的电视机是空的。当我到达
iterate.next()
对齐时,我得到异常:

线程“main”java.util.NoSuchElementException中出现异常

这个网站有很多框架。第一个框架集使用onLoad函数打开一个新窗口:

<frameset rows="36,*,0" id="start" border=1 frameborder=1 framespacing=1   onLoad="set_window_position(,,border_width,border_height,30,0);       
new_window1('eb.exe?p=switch&MaskName=sw_save_bordersize&switch=0&BORDER_SIZE='+border_width+'%2C'+border_height,'af25593d975111e9ad44c8cb5923f8d8',100,100,7000,7000);"

这里的问题是:我面对的是帧和帧!新窗口。当我尝试先切换到defaultContent()然后切换到一个帧时,我得到以下错误消息:“Exception in thread”main“org.openqa.selenium.NoSuchWindowException:无法获取浏览器您需要等待这些框架集加载。在加载框架集内容之前,主页可能会返回为pageloaded。尝试使用ExpectedConditions.FrameToBeAvailable和SwitchToIt。。。我认为您可以放心地假设框架集已经加载,新窗口已经创建。可能还想在迭代器中检查“hasnext”。。。