[e2e][screen_is_not_black] Ignore and retry on JsonRpcException

Also, print the log messages.

TESTED=fx run-e2e-tests screen_is_not_black_test

Change-Id: I88f280c02ee811cb282dc1ce4ea7e754e2d97709
diff --git a/src/tests/end_to_end/screen_is_not_black/BUILD.gn b/src/tests/end_to_end/screen_is_not_black/BUILD.gn
index bd0a1ff..c270e99 100644
--- a/src/tests/end_to_end/screen_is_not_black/BUILD.gn
+++ b/src/tests/end_to_end/screen_is_not_black/BUILD.gn
@@ -13,6 +13,7 @@
   deps = [
     "//sdk/testing/sl4f/client",
     "//third_party/dart-pkg/pub/image",
+    "//third_party/dart-pkg/pub/logging",
     "//third_party/dart-pkg/pub/matcher",
     "//third_party/dart-pkg/pub/test",
   ]
diff --git a/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart b/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
index 5908c30..f97603e 100644
--- a/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
+++ b/src/tests/end_to_end/screen_is_not_black/test/screen_is_not_black_test.dart
@@ -2,9 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:test/test.dart';
 import 'package:image/image.dart';
+import 'package:logging/logging.dart';
 import 'package:sl4f/sl4f.dart' as sl4f;
+import 'package:test/test.dart';
 
 int _ignoreAlpha(int pixel) => pixel & 0x00ffffff;
 
@@ -19,6 +20,9 @@
 const _delay = Duration(seconds: 10);
 
 void main() {
+  Logger.root
+    ..level = Level.ALL
+    ..onRecord.listen((rec) => print('[${rec.level}]: ${rec.message}'));
   sl4f.Sl4f sl4fDriver;
   sl4f.Scenic scenicDriver;
 
@@ -35,10 +39,14 @@
 
   test('the startup screen is not black', () async {
     for (var attempt = 0; attempt < _tries; attempt++) {
-      final screen = await scenicDriver.takeScreenshot(dumpName: 'screen');
-      if (!_isAllBlack(screen)) {
-        print('Saw a screen that is not black.');
-        return;
+      try {
+        final screen = await scenicDriver.takeScreenshot(dumpName: 'screen');
+        if (!_isAllBlack(screen)) {
+          print('Saw a screen that is not black.');
+          return;
+        }
+      } on sl4f.JsonRpcException {
+        print('Error taking screenshot; Scenic might not be ready yet.');
       }
       await Future.delayed(_delay);
     }