Ich verwende PhantomJS, um Screenshots von beliebigen URLs zu erstellen. Bevor der Screenshot gemacht wird, möchte ich das Seiten-DOM manipulieren, um alle Dropdown-Menüs zu entfernen, da PhantomJS sie in der oberen linken Ecke der Seite falsch darstellt (ein bekanntes Phantom Problem .)
Ich habe ein einfaches DOM-Skript, um dies zu tun:
%Vor%Dies wurde getestet und funktioniert als eigenständiges Javascript. Es funktioniert jedoch nicht innerhalb des PhantomJS-Codes, den ich verwende, um die Screenshots zu sammeln (der letzte gezeigte Teil):
%Vor%Einige Seiten rendern immer noch mit einem Auswahlfeld an der falschen Stelle. Ich würde mich freuen, wenn ich entweder den ursprünglichen PhantomJS-Rendering-Fehler beheben oder die Dropdown-Menüs im DOM ausblenden würde. Danke.
Führen Sie es im richtigen Kontext aus, d. h. innerhalb der Seite mit page.evaluate
. Es gibt viele Beispiele, die in PhantomJS enthalten sind , die dies demonstrieren, z. useragent.js .
Dieser Code funktioniert nicht? Ich habe die Variable cached selects in der for-Schleife verwendet, anstatt die Elemente aus dem DOM erneut auszuwählen, um die Leistung zu verbessern.
%Vor%