If I try on my local machine (Macbook)
byte[] screen = driver.takeScreenshot();
Driver:
public byte[] takeScreenshot() {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
I get
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
But if I try it on Jenkins Windows slave, I get
SCREENSHOT BYTES: -1198078711310261000013737268820040002-1058600028-82566600109573686584120-100-19-63491000-62-96-11791091063 960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000466116-201-91-24-43-101000073697868-826696-126
which is image, but blank (invisible).
I tried it in Chromedriver, Geckodriver and IE driver as well.