diff --git a/test/ui/src/test/java/io/v/webdriver/TestFailureWatcher.java b/test/ui/src/test/java/io/v/webdriver/TestFailureWatcher.java
index 68dcd47..474c1f3 100644
--- a/test/ui/src/test/java/io/v/webdriver/TestFailureWatcher.java
+++ b/test/ui/src/test/java/io/v/webdriver/TestFailureWatcher.java
@@ -6,6 +6,7 @@
 
 import org.junit.rules.TestWatcher;
 import org.junit.runner.Description;
+import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.chrome.ChromeDriverService;
 
@@ -32,7 +33,7 @@
   protected void failed(Throwable e, Description description) {
     // Take a screenshot for the current screen and write the html report.
     HTMLReportData data = uiTest.getCurrentHTMLReportData();
-    Util.takeScreenshot("test-failed.png", "Test Failed", data);
+    Util.takeScreenshot((TakesScreenshot)driver, "test-failed.png", "Test Failed", data);
     HTMLReporter reporter = new HTMLReporter(data);
     try {
       reporter.generateReport();
diff --git a/test/ui/src/test/java/io/v/webdriver/Util.java b/test/ui/src/test/java/io/v/webdriver/Util.java
index 46e81a0..b677e80 100644
--- a/test/ui/src/test/java/io/v/webdriver/Util.java
+++ b/test/ui/src/test/java/io/v/webdriver/Util.java
@@ -6,6 +6,12 @@
 
 import io.v.webdriver.htmlreport.HTMLReportData;
 
+import org.openqa.selenium.OutputType;
+import org.openqa.selenium.TakesScreenshot;
+import org.openqa.selenium.WebDriver;
+
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -56,27 +62,28 @@
   /**
    * Takes a screenshot.
    *
-   * <p>It uses the "import" command, saves it to the given file, and records it in the given
-   * htmlReportData.
+   * <p>It uses the WebDriver to grab the screenshot data, saves it to the given file,
+   * and records it in the given htmlReportData.
    *
+   * @param TakesScreenshot a driver that can getScreenshotAs, such as a ChromeDriver.
    * @param fileName the file to save the screenshot to.
    * @param caption the caption of the screenshot.
    * @param htmlReportData the data model to add screenshot data to.
    */
-  public static void takeScreenshot(String fileName, String caption,
-      HTMLReportData htmlReportData) {
+  public static void takeScreenshot(TakesScreenshot taker, String fileName,
+    String caption, HTMLReportData htmlReportData) {
+
     String fullFileName =
-        String.format("%s-%s", getSafeFilename(htmlReportData.getTestName()), fileName);
+      String.format("%s-%s", getSafeFilename(htmlReportData.getTestName()), fileName);
     Runtime rt = Runtime.getRuntime();
     try {
-      String imagePath = String.format("%s/%s", htmlReportData.getReportDir(), fullFileName);
-      Process pr = rt.exec(
-          String.format("import -window root -crop 1004x748+10+10 -resize 800 %s", imagePath));
-      int retValue = pr.waitFor();
-      if (retValue != 0) {
-        System.err.println(String.format("Failed to capture screenshot: %s", imagePath));
-      }
+      byte[] imageData = taker.getScreenshotAs(OutputType.BYTES); // throws WebDriverException
+      File imageFile = new File(htmlReportData.getReportDir(), fullFileName);
+      FileOutputStream fos = new FileOutputStream(imageFile);
+      fos.write(imageData);
+      fos.close();
     } catch (Exception e) {
+      System.err.printf("Failed to copy screenshot to %s/%s\n", htmlReportData.getReportDir(), fullFileName);
       e.printStackTrace();
     }
 
diff --git a/test/ui/src/test/java/io/v/webdriver/commonpages/ChromeSignInPage.java b/test/ui/src/test/java/io/v/webdriver/commonpages/ChromeSignInPage.java
index 6b51909..bcf1569 100644
--- a/test/ui/src/test/java/io/v/webdriver/commonpages/ChromeSignInPage.java
+++ b/test/ui/src/test/java/io/v/webdriver/commonpages/ChromeSignInPage.java
@@ -5,6 +5,7 @@
 package io.v.webdriver.commonpages;
 
 import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.TakesScreenshot;
 
 import io.v.webdriver.RobotHelper;
 import io.v.webdriver.Util;
@@ -42,7 +43,7 @@
     robotHelper.enter();
     robotHelper.enterText(password);
     robotHelper.tab();
-    Util.takeScreenshot("before-chrome-signin.png", "Before Signing In Chrome", htmlReportData);
+    Util.takeScreenshot((TakesScreenshot)driver, "before-chrome-signin.png", "Before Signing In Chrome", htmlReportData);
     robotHelper.enter();
     Util.sleep(2000);
 
@@ -50,6 +51,6 @@
     // This popup is not accessible by WebDriver.
     log("Dismiss 'Sign-in successful' prompt");
     robotHelper.enter();
-    Util.takeScreenshot("after-chrome-signin.png", "After Signing In Chrome", htmlReportData);
+    Util.takeScreenshot((TakesScreenshot)driver, "after-chrome-signin.png", "After Signing In Chrome", htmlReportData);
   }
 }
diff --git a/test/ui/src/test/java/io/v/webdriver/commonpages/ExtensionInstallationPage.java b/test/ui/src/test/java/io/v/webdriver/commonpages/ExtensionInstallationPage.java
index 8a81494..4a833a7 100644
--- a/test/ui/src/test/java/io/v/webdriver/commonpages/ExtensionInstallationPage.java
+++ b/test/ui/src/test/java/io/v/webdriver/commonpages/ExtensionInstallationPage.java
@@ -5,6 +5,7 @@
 package io.v.webdriver.commonpages;
 
 import org.openqa.selenium.By;
+import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.TimeoutException;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
@@ -37,7 +38,7 @@
     WebElement btnSignin = wait.until(ExpectedConditions.elementToBeClickable(By.id("signIn")));
     WebElement passwdTextField = driver.findElement(By.id("Passwd"));
     passwdTextField.sendKeys(password);
-    Util.takeScreenshot("google-account-signin.png", "Google Account Sign-In", htmlReportData);
+    Util.takeScreenshot((TakesScreenshot)driver, "google-account-signin.png", "Google Account Sign-In", htmlReportData);
     btnSignin.click();
   }
 
@@ -45,7 +46,7 @@
     log("Install extension");
     WebElement btnAddToChrome = wait.until(
         ExpectedConditions.elementToBeClickable(By.cssSelector("div[aria-label='Add to Chrome']")));
-    Util.takeScreenshot("before-install-extension.png", "Before Installing Extension",
+    Util.takeScreenshot((TakesScreenshot)driver, "before-install-extension.png", "Before Installing Extension",
         htmlReportData);
     btnAddToChrome.click();
     Util.sleep(2000);
@@ -60,7 +61,7 @@
         By.cssSelector("div[aria-label='Added to Chrome']")));
     // It might take some time for the extension to actually be installed.
     Util.sleep(3000);
-    Util.takeScreenshot("after-install-extension.png", "After Installing Extension",
+    Util.takeScreenshot((TakesScreenshot)driver, "after-install-extension.png", "After Installing Extension",
         htmlReportData);
   }
 }
diff --git a/test/ui/src/test/java/io/v/webdriver/commonpages/OAuthLoginPage.java b/test/ui/src/test/java/io/v/webdriver/commonpages/OAuthLoginPage.java
index bb5bc95..bb2df3c 100644
--- a/test/ui/src/test/java/io/v/webdriver/commonpages/OAuthLoginPage.java
+++ b/test/ui/src/test/java/io/v/webdriver/commonpages/OAuthLoginPage.java
@@ -5,6 +5,7 @@
 package io.v.webdriver.commonpages;
 
 import org.openqa.selenium.By;
+import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.ui.ExpectedConditions;
@@ -25,13 +26,13 @@
 
   public void login() {
     log("OAuth login");
-    Util.takeScreenshot("oauth-login.png", "OAuth Login", htmlReportData);
+    Util.takeScreenshot((TakesScreenshot)driver, "oauth-login.png", "OAuth Login", htmlReportData);
     WebElement btnSignInGoogle = wait.until(ExpectedConditions.elementToBeClickable(
         By.xpath("//button[contains(text(), 'Sign in with a Google Account')]")));
     btnSignInGoogle.click();
 
     log("Accept access info");
-    Util.takeScreenshot("accept-access-info.png", "Accepting Access Info", htmlReportData);
+    Util.takeScreenshot((TakesScreenshot)driver, "accept-access-info.png", "Accepting Access Info", htmlReportData);
     WebElement btnAccept =
         wait.until(ExpectedConditions.elementToBeClickable(By.id("submit_approve_access")));
     btnAccept.click();
diff --git a/test/ui/src/test/java/io/v/webdriver/commonpages/PageBase.java b/test/ui/src/test/java/io/v/webdriver/commonpages/PageBase.java
index bd30fd2..f3f9874 100644
--- a/test/ui/src/test/java/io/v/webdriver/commonpages/PageBase.java
+++ b/test/ui/src/test/java/io/v/webdriver/commonpages/PageBase.java
@@ -4,6 +4,7 @@
 
 package io.v.webdriver.commonpages;
 
+import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
@@ -64,7 +65,7 @@
    * Takes a screenshot for the current page and names it using pageName.
    */
   protected void takeScreenshotUsingPageName() {
-    Util.takeScreenshot(String.format("%s.png", Util.getSafeFilename(pageName)), pageName,
+    Util.takeScreenshot((TakesScreenshot)driver, String.format("%s.png", Util.getSafeFilename(pageName)), pageName,
         htmlReportData);
   }
 }
