WebDriver takeScreenshot()返回空白屏幕

时间:2017-06-30 10:42:40

标签: selenium jenkins webdriver cucumber screenshot

如果我试用我的本地机器(Macbook)

byte[] screen = driver.takeScreenshot();

驱动:

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奴隶上尝试,我会得到

  

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

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

我也在Chromedriver,Geckodriver和IE驱动程序中尝试过它。

2 个答案:

答案 0 :(得分:3)

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

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

然后我发现Google于6月27日推出了新版Chrome。我的Chrome会在6月30日自动更新。这就是全部原因。

我尝试将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

答案 1 :(得分:1)

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

  

整页截图 - 从中​​获取整个页面的屏幕截图   视口顶部到底部。

我假设该更新中的某些内容使用Jenkins打破了屏幕截图。我发现回滚到以前版本的Chrome修复了这个问题。 (查找构建版本here,然后下载该版本here)。

由于我无法找到其他人,因此我还提交了一个票据here来谷歌搜索此问题。也许如果其他人评论它,它会得到一些动力。