takeScreenshot function
Future<void>
takeScreenshot(
{ - dynamic withWidgetTreeRender = false,
- dynamic prefix = '',
})
Implementation
Future<void> takeScreenshot({withWidgetTreeRender = false, prefix = ''}) async {
await currentWorld.tester.pumpAndSettle();
RenderObject? renderObject = _getMainWidget()?.renderObject;
if (renderObject != null) {
RenderRepaintBoundary boundary = renderObject as RenderRepaintBoundary;
ui.Image image = await boundary.toImage();
ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData!.buffer.asUint8List();
final screenshotFile =
_getReportFolderPath(filenamePrefix: prefix, fileExtension: 'png');
await screenshotFile.writeAsBytes(pngBytes);
currentWorld.reportFilesPath.add(screenshotFile.path);
currentWorld.screenshot = screenshotFile;
if (withWidgetTreeRender) {
await dumpWidgetRender(prefix: prefix);
}
} else {
logger.e('Screenshot failed.');
}
}