Schnappen Sie sich einen screenshot von Chrome mit Chrome Developer Tools?

Ist es möglich, schnappen Sie sich einen screenshot von einem geöffneten Fenster mit der Chrome-Entwicklung-Tools-remote-debugger?

Zum Beispiel bin ich die Verbindung zum remote-debug-port und ich habe diesen
code, erscheint ein leeres Fenster:

   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 ist meine Verbindung zum debugger auf http://localhost:9222)

Dann lade ich mir mein Ziel-URL mit:

    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);
   }

Den code oben funktioniert gut, und zuerst öffnet ein Fenster und lädt dann die
URL. Idealerweise ist die nächste Sache, die ich tun möchte, ist schnappen Sie sich einen screenshot
der geladene web-Seite. Gerade jetzt, diese browser-Fenster pop-in eine
Xvfb virtuellen desktop, und ich kann mit ImageMagick ' s-import-tool zu greifen
ein screenshot von der Ziel-Fenster, aber nur, wenn Sie in der
Vordergrund
.

Dies ist ein problem, da diese Anwendung wurde entwickelt, um laufen in
parallel mit mehreren Fenstern knallen in den virtuellen desktop. Jeder
Fenster überlappend mein Ziel-Fenster geben Sie mir nur einen schwarzen
screenshot, da Xfvb rendert nur, was sichtbar ist.

Ich schaute auch in die API-Referenz, Chrom.tabs.captureVisibleTab. Kein Glück gibt, es nicht erfassen, was nicht sichtbar ist.

Gibt es eine Möglichkeit, mit dem remote-debugger, schnappen Sie sich einen screenshot von einem
Fenster öffnen?

(für Referenz-Zwecke, meine ImageMagick-Befehl für den import ist dieser)

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

Wo öffne ich die URL http://www.google.com in meinem Chrom browser mit loadPage() oben. Es funktioniert sehr gut, solange die "Google - Chrom" - Fenster, das angezeigt wird, frei ist und den Fokus hat. Drop ein anderes Fenster über einen Teil davon, und ich bekomme eine große schwarze Fläche, das war nicht gerendert.

Dank!

InformationsquelleAutor AWT | 2012-01-27

Schreibe einen Kommentar