Python + Selen + PhantomJS render to PDF
Ist es möglich PhantomJS's
Rendern der PDF-Funktionen, wenn PhantomJS verwendet wird in Kombination mit Selen und Python? (dh. mimic page.render('file.pdf')
Verhalten in Python über Selen).
Ich merke, dass diese verwendet GhostDriver
, und GhostDriver
nicht wirklich viel in der Art von Druck.
Wenn eine andere alternative ist es möglich, dass nicht Selen, bin ich alle Ohren.
- Haben Sie sah Pypdf2? blog.pythonlibrary.org/tag/python-pdf-series
- Ziemlich umfangreich, wie ich es die ganze Zeit. Auch Phaseit selbst gesagt haben, dass "PyPDF2 hat keine HTML-Kenntnisse". Es wird nicht zuverlässig machen HTML.
- brauchst du den screenshot, dass es bei einer genauen Zustand während der Tests? Oder sind Sie nur auf der Suche um eine Seite zu laden & Rendern in PDF?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Lösung mit Selen und spezieller Befehl für GhostDriver
(es sollte funktionieren, da GhostDriver 1.1.0 und PhantomJS 1.9.6, getestet mit PhantomJS 1.9.8):
siehe auch meine Antwort auf die gleiche Frage hier.
Könnten Sie
selenium.selenium.capture_screenshot('file.png')
aber das wird sich geben Sie einen Screenshot im png-Format, nicht pdf. Es scheint nicht ein Weg, um einen screenshot als pdf-Datei.Hier sind die docs für capture_screenshot: http://selenium.googlecode.com/git/docs/api/py/selenium/selenium.selenium.html?highlight=screenshot#selenium.selenium.selenium.capture_screenshot
Versucht pdfkit? Es kann zum Rendern von PDF-Dateien aus html-Seiten.
@abgelehnt, ich weiß, Sie erwähnt nicht nutzen wollen, die Teilprozesse, sondern...
Können Sie tatsächlich in der Lage zu nutzen Teilprozess Kommunikation mehr, als Sie erwartet. Theoretisch könnten Sie nehmen Ariya stdin/stdout Beispiel und erweitern es um eine relativ generische wrapper-Skript. Es könnte zunächst annehmen, eine Seite zu laden, dann hören (& execute) Ihre test-Aktionen auf dieser Seite. Schließlich könnten Sie kick-off der
.render
oder sogar eine generische Erfassung für die Fehlerbehandlung:eval
, und aus meinen Erfahrungen versuchen, dies zu tun, es ist sowohl unsicher und unzuverlässig. Wenn ich mich nicht Irre?