WebDriver takeScreenshot() returns 空白屏幕

WebDriver takeScreenshot() returns blank screen

如果我在本地计算机 (Macbook) 上尝试

byte[] screen = driver.takeScreenshot();

Driver:

public byte[] takeScreenshot() {
        return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
    }

我明白了

SCREENSHOT BYTES: -119807871131026100001373726882008520054886000-7418-1053100122110567678073676732801141111021051081010072 ... 66-51-53-81-71-37-7131115-33-25-66-501218163264-12801248163264-12801248163264-12801248163264-12801291446-13-31-13-36105-1856119-104-112-3112194-3361471279-107-3665110-3364000073697868-826696-126

但是如果我在 Jenkins Windows slave 上尝试,我得到

SCREENSHOT BYTES: -1198078711310261000013737268820040002-1058600028-82566600109573686584120-100-19-63491000-62-96-11791091063 960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000466116-201-91-24-43-101000073697868-826696-126

这是图像,但空白(不可见)。

我在 Chromedriver、Geckodriver 和 IE driver 中也试过了。

我遇到了几乎相同的问题并通过更新我的Chrome从版本 59.0.3071.115 到 Google Chrome beta v60.0.3112.40[= 解决了这个问题30=].

我的问题是 Selenium 屏幕截图在本地运行良好,但自上周以来仅在 Jenkins 上截取 空白 屏幕截图。这是 screenshot before my updating to Chrome Beta version.

然后我发现Google在6月27日实现了Chrome的新版本。而我的Chrome在30日June.That自动更新了所有的原因。

我尝试将 chromedriver 的 2.28 升级到 2.3,回滚 Chrome 到版本 64_59.0.3071.86,但它从未奏效。然后我发现下面的链接真的很有帮助。

Chrome 59 remote desktop chromedriver.exe saves white/blank

Selenium ChromeDriver makes blank screenshots

这发生在我的 Windows 机器上。在Chrome更新了59条笔记,其中一个亮点是:

Full page screenshots - Take a screenshot of the entire page, from the top of the viewport to the bottom.

我假设该更新中的某些内容破坏了使用 Jenkins 的屏幕截图。我发现回滚到以前版本的 Chrome 可以解决我的问题。 (查找构建版本 here then download that version here)。

我还为这个问题提交了 here 到 google 的工单,因为我找不到任何其他问题。也许如果其他人评论它,它会得到一些动力。