@Override
  public void runner() throws Exception {
    try {
      initDriver();
      String sUrl;
      if (credentialItem != null) {
        sUrl =
            new URI(
                    url.getProtocol(),
                    credentialItem.getURLUserInfo(),
                    url.getHost(),
                    url.getPort(),
                    url.getPath(),
                    url.getQuery(),
                    url.getRef())
                .toString();
      } else sUrl = url.toExternalForm();
      browserDriver.get(sUrl);
      if (waitSec > 0) sleepSec(waitSec);
      BufferedImage image = browserDriver.getScreenshot();
      if (visiblePartOnly)
        image = ImageUtils.getSubimage(image, 0, 0, capture.width, capture.height);

      if (resize != null) image = ImageUtils.reduceImage(image, resize.width, resize.height);
      if (reductionPercent < 100) image = ImageUtils.reduceImage(image, reductionPercent);
      if (screenshotManager != null) screenshotManager.store(url, image);
      finalImage = image;
    } finally {
      release();
    }
  }
 public ScreenshotThread(
     Config config,
     ScreenshotManager screenshotManager,
     URL url,
     CredentialItem credentialItem,
     BrowserDriverEnum browserDriverEnum) {
   super(config, null, null, null);
   this.browserDriverEnum = browserDriverEnum;
   this.url = url;
   this.screenshotManager = screenshotManager;
   this.capture = screenshotManager.getCaptureDimension();
   this.resize = screenshotManager.getResizeDimension();
   this.credentialItem = credentialItem;
   this.waitSec = 0;
   this.reductionPercent = 100;
   this.visiblePartOnly = true;
 }