我已经创建了一个显示图像的控件,并对其进行测试,我创建了该控件的“屏幕快照”,并将其与我期望的图像进行比较。像这样创建快照:
protected Image createScreenshot(Control control) {
final GC gc = new GC(control);
try {
final Point size = control.getSize();
final Image result = new Image(control.getDisplay(), size.x, size.y);
gc.copyArea(result, 0, 0);
return result;
} finally {
gc.dispose();
}
}
从IDE启动时效果很好,但是从我们的CI服务器以无头模式启动时,图像无法渲染。我尝试为周围的Shell
拍照,但是Shell
的屏幕截图也是白色图片。
我尝试了以下方法来使屏幕截图正常工作:
Control#redraw();
Control#update();
他们没有工作。
即使在无头模式下,也可以呈现控件吗?
答案 0 :(得分:0)
我怀疑控件没有绘制在屏幕上,这就是为什么您看到空白图像的原因。
我认为您的问题与此类似: https://www.eclipse.org/forums/index.php/t/162790/
为了解决这个问题,您应该点击以下链接: https://wiki.eclipse.org/SWTBot/CI_Server
祝你好运