我通过 GhostDriver
寻找能力渲染pdf与 PhantomJS
,而不仅仅是渲染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生成完美 .
现在我想要执行脚本,如 rasterize.js
( page.render('file.pdf')
)但是通过 webdriver
. webdriver
有 execute_script
方法,但它看起来像 PhantomJS
代码评估,并且无法访问 webpage
实例上下文 . 另外 webdriver
有 get_screenshot_as_base64
方法,但它只返回png .
我使用 selenium
, phantomjs
, nodejs
的最新版本 .
所以我的问题是如何通过 GhostDriver
访问 PhantomJS
网页实例并评估 render
方法?
1 回答
有一种特殊的方法可以使用下一个命令从GhostDriver执行PhantomJS脚本:
它包含在GhostDriver v1.1.0中,因此它应该在PhantomJS v.1.9.6之后起作用 .
看看这个例子:
请注意,在OS X PhantomJS renders web page as images中,由于OS X中Qt渲染引擎的限制(至少使用PhantomJS v.1.9.8及更早版本),因此文本不可选 .