예제 #1
0
  def Screenshot(self, timeout):
    assert self.screenshot_supported, 'Browser does not support screenshotting'

    self.EvaluateJavaScript("""
        if(!window.__telemetry) {
          window.__telemetry = {}
        }
        window.__telemetry.snapshotComplete = false;
        window.__telemetry.snapshotData = null;
        window.chrome.gpuBenchmarking.beginWindowSnapshotPNG(
          function(snapshot) {
            window.__telemetry.snapshotData = snapshot;
            window.__telemetry.snapshotComplete = true;
          }
        );
    """)

    def IsSnapshotComplete():
      return self.EvaluateJavaScript(
          'window.__telemetry.snapshotComplete')

    util.WaitFor(IsSnapshotComplete, timeout)

    snap = self.EvaluateJavaScript("""
      (function() {
        var data = window.__telemetry.snapshotData;
        delete window.__telemetry.snapshotComplete;
        delete window.__telemetry.snapshotData;
        return data;
      })()
    """)
    if snap:
      return image_util.FromBase64Png(snap['data'])
    return None
예제 #2
0
 def CaptureScreenshot(self, timeout=60):
     request = {'method': 'Page.captureScreenshot'}
     # "Google API are missing..." infobar might cause a viewport resize
     # which invalidates screenshot request. See crbug.com/459820.
     for _ in range(2):
         res = self._inspector_websocket.SyncRequest(request, timeout)
         if res and ('result' in res) and ('data' in res['result']):
             return image_util.FromBase64Png(res['result']['data'])
     return None
    def testReadFromBase64Png(self):
        bmp = image_util.FromBase64Png(test_png)

        self.assertEquals(2, image_util.Width(bmp))
        self.assertEquals(2, image_util.Height(bmp))

        image_util.GetPixelColor(bmp, 0, 0).AssertIsRGB(255, 0, 0)
        image_util.GetPixelColor(bmp, 1, 1).AssertIsRGB(0, 255, 0)
        image_util.GetPixelColor(bmp, 0, 1).AssertIsRGB(0, 0, 255)
        image_util.GetPixelColor(bmp, 1, 0).AssertIsRGB(255, 255, 0)
 def testIsEqual(self):
     bmp = image_util.FromBase64Png(test_png)
     file_bmp = image_util.FromPngFile(test_png_path)
     self.assertTrue(image_util.AreEqual(bmp, file_bmp, likely_equal=True))