Java 屏幕抓取似乎是IE 10的问题?

Java 屏幕抓取似乎是IE 10的问题?,java,selenium,webdriver,internet-explorer-10,Java,Selenium,Webdriver,Internet Explorer 10,我在本地机器中捕获屏幕截图时遇到问题。我使用FF和IE10,对于FF,一切都很好,屏幕截图是用全尺寸的窗口捕获的。 对于IE10,我得到了页面下半部分的黑色,它似乎与滚动有关,只要页面中有滚动,就会看到黑色条,否则就看不到。我怀疑是时间问题,IE捕获整个页面可能需要更长的时间 我有以下捕获代码: public static void takeScreenshot(String filename) { WebDriver augmentedDriver = new Augmenter(

我在本地机器中捕获屏幕截图时遇到问题。我使用FF和IE10,对于FF,一切都很好,屏幕截图是用全尺寸的窗口捕获的。 对于IE10,我得到了页面下半部分的黑色,它似乎与滚动有关,只要页面中有滚动,就会看到黑色条,否则就看不到。我怀疑是时间问题,IE捕获整个页面可能需要更长的时间

我有以下捕获代码:

public static void takeScreenshot(String filename) 
{
     WebDriver augmentedDriver = new Augmenter().augment(AbstractTest.driver);
     File screenshotFile=((TakesScreenshot)augmentedDriver).getScreenshotAs(OutputType.FILE);
     try 
     {
        FileUtils.copyFile(screenshotFile, new File(getScreenshotsDir() + filename));
     } 
     catch (IOException e) 
     {
        System.out.println("Cannot capture sreenshot." + e.getMessage());
     }
}
看来我的问题和这里说的完全一样:
FF的DOM加载比IE快得多。对于IE,使用JS等待文档处于就绪状态

do
{
   // sleep for few milliseconds.
} while ((string)ie.ExecuteScript("return document.readyState") != "complete");

(使用C#-伪代码编码,不符合要求)

您没有说您使用的是哪个版本的IEDriverServer.exe,但我将使用我的心灵调试功能猜测您使用的是运行在64位版本Windows上的32位版本的可执行文件。如果您使用的是32位版本的IEDriverServer.exe,那么您遇到的是IE 10或更高版本的已知问题。该问题在中有完整的记录。该问题报告中评论的操作信息:

当您在64位版本的Windows上运行IE 10或更高版本时, 默认情况下,承载包含以下内容的包含窗口的进程 浏览器chrome(地址栏、导航按钮、菜单等)是一个 64位进程。承载包含内容的窗口的进程 实际渲染(在每个选项卡中)是一个32位进程

默认情况下,IE驱动程序必须在顶层使用windows挂钩 窗口,允许浏览器调整足够大的大小以显示 整个页面画布。这就是问题所在。窗户挂钩是 未安装,因为64位进程(顶级窗口进程) 无法执行32位代码(32位代码中的windows钩子代码 IEDriverServer.exe)。正确解决此问题的唯一方法是 创建第二个(64位)可执行文件以执行窗口大小调整

不幸的是,任何修复这个问题的尝试都会涉及IE驱动程序本身的大规模重新架构,因此没有修复的时间表


作为旁注,说“在64位操作系统上使用64位IEDriverServer.exe”很有诱惑力,但这也有其自身的问题。同样的问题(32位可执行文件不能执行64位代码,反之亦然)也会发生在
sendKeys
上,相反的情况除外。使用
sendKeys
也需要一个windows钩子,但是钩子会进入客户端渲染过程,即使对于64位IE来说,客户端渲染过程通常也是32位的。因此,对于64位IE驱动程序来说,钩子不会安装到32位进程中,并且
sendKeys
需要花费大量的时间,每次按键时间大约为5秒。

我在IE上也有同样的问题很久了(ff和chrome都很好) 几天前,我刚刚启动了从集线器计算机到节点计算机的远程桌面连接……神奇的是,现在一切看起来都很好:-)


你觉得怎么样

多谢各位。请将其标记为已接受答案。因为这可能会帮助其他人面对类似的问题。你好。抱歉,我现在尝试了很多次,但黑条似乎仍然存在。问题似乎与滚动有关。每当页面中出现滚动时,黑色条就会显示为Anks以获取回复。是的,我正在运行32位。64位太慢了。我的解决方案是,我挂上了一个分辨率非常高的显示器,将其垂直放置。整个页面没有滚动显示,屏幕截图中没有任何黑条。