Java 未使用getWindowHandles找到包含已打开文档的新窗口

Java 未使用getWindowHandles找到包含已打开文档的新窗口,java,eclipse,selenium,Java,Eclipse,Selenium,我正在测试一个生成xml文件的应用程序。我需要验证这个XML文件内容的某些部分。我要做的是打开XML文件的档案,单击链接生成实际的XML文件,当弹出窗口出现时(打开、保存、取消),我选择打开文件。然后文件会在一个新窗口中打开,但我似乎找不到这个新窗口。当我尝试使用以下参数确定窗口的数量时: System.out.println("Windows: "+driver.getWindowHandles().size()); 控制台中的答案是:Windows:1 我可以在屏幕上看到打开了XML文件的

我正在测试一个生成xml文件的应用程序。我需要验证这个XML文件内容的某些部分。我要做的是打开XML文件的档案,单击链接生成实际的XML文件,当弹出窗口出现时(打开、保存、取消),我选择打开文件。然后文件会在一个新窗口中打开,但我似乎找不到这个新窗口。当我尝试使用以下参数确定窗口的数量时:

System.out.println("Windows: "+driver.getWindowHandles().size());
控制台中的答案是:Windows:1

我可以在屏幕上看到打开了XML文件的窗口(文档被下载到Internet临时文件并在新窗口中打开),但无法与脚本交互,甚至无法找到它

简言之,我所做的是:

driver.findElement(By.xpath("xpath")).click(); //click on a link to the xml file
Thread.sleep(3000); //wait for the Open,Save, Cancel popup 
Runtime.getRuntime().exec("D:\\Test\\gros\\OpenDownloadDoc.exe"); //this executable (created with AutoIT) is only to send the keystrokes 'Alt-N' to focus on the Open,Save, Cancel popup and choose Open
Thread.sleep(3000); //wait for the new browser window containing the xml file is opened
System.out.println("Windows: "+driver.getWindowHandles().size());
我现在有两个窗口,一个是我点击链接打开XML文件的应用程序,另一个是显示实际XML文件的窗口

当我发送以下行时:

 System.out.println(driver.getTitle());

它返回应用程序的页面标题(这很有意义,因为我没有告诉它切换到其他窗口)。我似乎找不到包含该文件的另一个窗口,更不用说切换到它了。

您使用的是什么浏览器?文件是在新的单独窗口中打开还是作为新的选项卡打开?如果你使用的是IE,那么看看我使用的是IE10。窗口作为单独的窗口打开,而不是新选项卡。我目前正在查看基里尔发布的链接。但仍在试图解决这个问题……为什么不直接从保存XML文件的地方使用XmlReader读取它呢