add captureScreenshotAsList and captureScreenshotAsBase64
diff --git a/lib/src/web_driver.dart b/lib/src/web_driver.dart
index 3e15517..3069bd7 100644
--- a/lib/src/web_driver.dart
+++ b/lib/src/web_driver.dart
@@ -141,9 +141,17 @@
   Mouse get mouse => new Mouse._(this);
 
   /// Take a screenshot of the current page as PNG.
+  Future<String> captureScreenshotAsBase64() async => await getRequest('screenshot');
+
+  /// Take a screenshot of the current page as PNG.
+  Future<List<int>> captureScreenshotAsList() async {
+    var base64Encoded = captureScreenshotAsBase64();
+    return BASE64.decode(await base64Encoded);
+  }
+  /// Take a screenshot of the current page as PNG.
+
   Stream<int> captureScreenshot() async* {
-    var encoded = await getRequest('screenshot');
-    yield* new Stream.fromIterable(BASE64.decode(encoded));
+    yield* new Stream.fromIterable(await captureScreenshotAsList());
   }
 
   /// Inject a snippet of JavaScript into the page for execution in the context
diff --git a/test/src/web_driver.dart b/test/src/web_driver.dart
index d00ceff..fd52f0e 100644
--- a/test/src/web_driver.dart
+++ b/test/src/web_driver.dart
@@ -177,6 +177,18 @@
         expect(screenshot, hasLength(isPositive));
         expect(screenshot, everyElement(new isInstanceOf<int>()));
       });
+
+      test('captureScreenshotAsList', () async {
+        var screenshot = await driver.captureScreenshotAsList();
+        expect(screenshot, hasLength(isPositive));
+        expect(screenshot, everyElement(new isInstanceOf<int>()));
+      });
+
+      test('captureScreenshotAsBase64', () async {
+        var screenshot = await driver.captureScreenshotAsBase64();
+        expect(screenshot, hasLength(isPositive));
+        expect(screenshot, new isInstanceOf<String>());
+      });
     });
   });
 }