Сделать снимок экрана Chrome с помощью Chrome Developer Tools?

Можно ли сделать скриншот открытого окна с помощью удаленного отладчика Chrome Development Tools?

Например, я подключаюсь к удаленному порту отладки и имею такой код, который открывает пустое окно:

   private void sendWindowPop(int width, int height) throws
IOException {
       hsc.send("{\"method\": \"Runtime.evaluate\", \"id\": "
               + hsc.nextInt()
               + ", \"params\": {"
               + "\"expression\":
\"window.open('about:blank','name','toolbar=0,scrollbars=0,"
               + "location=0,status=0,menubar=0,resizable=0,width="
               + width
               + ",height="
               + height
               + "');\""
               + "}}");

(hsc - мое подключение к отладчику по адресу http://localhost:9222)

Затем я загружаю целевой URL следующим образом:

    private void loadPage(String uriString) throws IOException {
       hsc.send("{\"method\": \"Page.open\", \"id\": " +
       hsc.nextInt() + ", \"params\": {\"url\": \"" + uriString + "\"}}");
       hsc.waitFor(ChromeNotifications.PAGE_LOADEVENTFIRED, DEFAULT_TIMEOUT_MILLIS);
   }

Код выше работает нормально, сначала открывается окно, а затем загружается URL. URL. В идеале, следующее, что я хотел бы сделать, это сделать снимок экрана загруженной веб-страницы. Сейчас эти окна браузера открываются на виртуальный рабочий стол Xvfb, и я могу использовать инструмент импорта ImageMagick для захвата снимок экрана целевого окна, но только если оно находится на переднем плане.

Это проблема, поскольку это приложение предназначено для работы параллельно с несколькими окнами, появляющимися на виртуальном рабочем столе. Любое окно, перекрывающее мое целевое окно, просто даст мне черный снимок экрана, поскольку Xfvb отображает только то, что видно.

Я также просмотрел ссылку на API, chrome.tabs.captureVisibleTab. Не повезло, он не захватывает то, что не видно.

Есть ли способ, используя удаленный отладчик, захватить снимок экрана открытого окна?

(для справки, моя команда ImageMagick для импорта такова)

    DISPLAY=:0.0 import -window "Google - Chromium" screenshot.png

Где я открываю URL http://www.google.com в браузере chromium, используя loadPage() выше. Все работает отлично, пока всплывающее окно "Google - Chromium" не загорожено и имеет фокус. Если на часть этого окна наложить другое окно, то появляется большая черная область, которая не была отрисована.

Спасибо!

6
задан AWT 27 January 2012 в 22:56
поделиться