【发布时间】:2014-06-01 06:39:09
【问题描述】:
我通过GhostDriver 寻找PhantomJS 的能力渲染pdf,而不仅仅是渲染pdf。当我使用下一个代码时,页面正常加载:
from selenium import webdriver
driver = webdriver.PhantomJS('./node_modules/phantomjs/bin/phantomjs')
driver.set_window_size(1024, 768)
driver.get('http://stackoverflow.com')
当我通过命令行https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js 使用下一个脚本时,pdf 会完美生成。
现在我想通过webdriver 执行类似rasterize.js (page.render('file.pdf')) 的脚本。 webdriver 有 execute_script 方法,但它看起来像 PhantomJS 代码评估并且无权访问 webpage 实例上下文。 webdriver 也有 get_screenshot_as_base64 方法,但它只返回 png。
我使用最新版本的selenium、phantomjs、nodejs。
所以我的问题是如何通过GhostDriver 访问PhantomJS 网页实例并评估render 方法?
【问题讨论】:
-
我也在找这个,还有……有人吗?
-
对于 PDF 生成(不是
GhostDriver或WebDriver),您可以使用ghost.py(需要 QT),找到带有pyexecjs或subprocesses的包装器。还存在作为pdfkit和wkhtmltopdf的python 包作为wkhtmltopdf的包装器 - 它应该具有相同的结果,因为webkit 也是如此。weasyprint也不错,但不是 webkit。
标签: python selenium phantomjs ghostdriver