Можно ли получить снимок экрана с открытым окном с помощью удаленного отладчика 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. В идеале, следующее, что я хотел бы сделать, это сделать скриншот
загруженной веб-страницы. Прямо сейчас эти окна браузера появляются в
Виртуальный рабочий стол 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" не имеет препятствий и имеет фокус. Опустите еще одно окно поверх его, и я получу большую черную область, которая не была отрисована.
Спасибо!