Implementation
static Future<Snapshot?> getSnapshotFromDriver(String id, SnapshotType type,
FlutterDriver driver, List<RegExp>? removeExps) async {
try {
switch (type) {
case SnapshotType.image:
return Snapshot(id, image: (await driver.screenshot()));
case SnapshotType.render:
final json = (await driver.getRenderTree()).toJson();
var s = json['tree'].toString().cleanupTree();
s = removeExps != null ? s.removeFromList(removeExps) : s;
return Snapshot(id, render: s);
case SnapshotType.layer:
final json = (await driver.getLayerTree()).toJson();
var s = json['tree'].toString().cleanupTree();
s = removeExps != null ? s.removeFromList(removeExps) : s;
return Snapshot(id, layer: s);
}
} catch (e) {
print(
'SnapshotTest: (getSnapshotFromDriver) snapshot from driver failed for type - $type - $e');
}
}