java - Webdriver - IE 在截图时闪烁

标签 java internet-explorer selenium selenium-webdriver webdriver

我在IE中截图时出现闪屏的问题,我在网上找遍了也没有解决这个问题。

我找到了为测试步骤截取屏幕截图的替代解决方案。

我没有使用 webdriver API 来截屏,而是依靠 Java Robot API 来截屏。

我使用以下代码在 IE 中截取屏幕截图,没有任何闪烁。

public static boolean TakeScreenshot(String filePath){
boolean b = false;
try {
    BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));

    b = ImageIO.write(image, "png", new File(filePath));            

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
return b;

对于 Internet Explorer 中的这个闪烁问题,webdriver API 是否有任何解决方案?

最佳答案

我很惊讶您没有在网络上找到任何对此的引用。至少有一个 blog post顺便提到它,并且总是有 source code这会准确地告诉您它在做什么。

您描述的“闪烁”可能是由于 IE 驱动程序操作 IE 窗口截屏的方式所致。在 WebDriver API 中,应该截取页面的完整 DOM。 IE 驱动程序使用 Windows PrintWindow API截取屏幕截图。然而,截取整个 DOM 的唯一方法是在截屏之前调整 IE 浏览器窗口的大小以显示整个 DOM。驱动程序然后恢复窗口以前的大小。此窗口调整大小似乎会导致“闪烁”。由于 Firefox 和 Chrome 驱动程序使用根本不同的方式来生成它们的屏幕截图(IE 驱动程序由于后者的架构而无法使用这些方法),因此它们不会表现出这种行为。

关于java - Webdriver - IE 在截图时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058030/

相关文章:

java - Spring Boot 1.5.8 中的内存泄漏

java - Image.getScaledInstance() 不起作用

java - 使用不同的类将 JSON 数据与 GSON 映射

internet-explorer - Jaws 16 未读取 IE 11 中的 "alert"角色

javascript - 重定向到其他页面时 IE10 中的 Cookie 丢失

java - Selenium 2 : Detect content type of link destinations

java - sendkeys(keys.Down) 和 sendkeys(keys.Arrow_Down) 之间的区别

java - 将用户创建的变量放入数组中

java - 通过以以下开头的链接文本查找 WebElement

internet-explorer - 为什么 ie 在遇到 <fb :xxx> fbml elements when correctly using the fbml xmlns? 时显然会回流 DOM