Tag: phantomjs

如何在node.js中生成PDF

我想要生成一个模块,它将通过input作为我的发票生成PDF,并将PDF文件自动发送到客户端的邮件ID。 在第一步,我得到了一些代码,并尝试生成PDF。 该代码正在工作,我能够生成PDF。 但我无法打开文件。 代码我使用这个链接: http : //github.com/marak/pdf.js/

debuggingPhantomJS @ font-face问题

当我在EC2服务器上使用Node.js使用PhantomJS来渲染网页时,无法加载字体。 我在Google上看到了这个问题,当人们遇到问题时,没有任何解决scheme对我有帮助。 我正在寻找的是debuggingPhantomJS和@ font-face的方法。 我想看看它正在尝试加载哪些字体文件,以及可能发生问题的地方,所以我可以自己修复它 。 显然这是非常模糊的,所以这里有一些图片详细说明了我的问题: 在本地主机上显示(字体安装在机器上): http : //imgur.com/o305T 在EC2上渲染(字体应该从外部的css文件加载): http : //imgur.com/6CQW7

通过幻影运行茉莉花规格,得到“无法findvariables:描述”

当我在CI作业上运行在centOS5 linux服务器上时,遇到了同样的问题,用phantomJS 1.7(我自己编译) Running "jasmine" task Testing jasmine specs via phantom … [D] ["phantomjs","onResourceReceived","GET http://127.0.0.1:8888/test/spec/CommonTest.js"] [D] ["phantomjs","onError","ReferenceError: Can't find variable: describe", [{"file":"http://127.0.0.1:8888/test/spec/CommonTest.js","line":31,"function":""}]] ReferenceError: Can't find variable: describe … 在其他机器,如WinXP等规格运行成功

当我使用node-horseman打开nodejs的phantomjs时,幻像进程死亡

当我用Node.js来控制phantomjs时,遇到了一个问题: Unhandled rejection HeadlessError: Phantom Process died at ClientRequest. (/Users/zhuyingda/nodejs/veneno/node_modules/node-phantom-simple/node-phantom-simple.js:655:12) at emitOne (events.js:77:13) at ClientRequest.emit (events.js:169:7) at Socket.socketOnEnd (_http_client.js:288:9) at emitNone (events.js:72:20) at Socket.emit (events.js:166:7) at endReadableNT (_stream_readable.js:905:12) at doNTCallback2 (node.js:441:9) at process._tickCallback (node.js:355:17) 我只是运行这个代码: var Horseman = require('node-horseman'); var horseman = new Horseman(); horseman .userAgent("Mozilla/5.2 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0") .on('resourceRequested', function […]

来自node.js的phantomjs调用产卵似乎不执行脚本

我正在试图从dynamic车把网页生成一个PDF文件,将显示数据库中的数据。 一旦我得到这个工作在我的本地机器上,我想将代码移动到弹性beanstalk。 代码似乎运行,最初使调用产卵,但是,调用phantomjs似乎并没有启动传递给它的脚本。 为了确认,我在文件的最开始处添加了一个console.log语句,并且从不打印出来。 更不用说脚本文件中的其他打印语句了。 代码如下: code that performs the spawn: var childArgs = [ //'–debug=true', path.join(__dirname, '../phantom/capture.js'), id, filename ]; let child = spawn(phantomjs.path, childArgs, {detached: false}); console.log('set up stderr…..'); child.stderr.on('data', (data) => { console.log('ps stderr: ${data}'); }); console.log('set up stdout…..'); child.stdout.on('data', (data) => { console.log('ps stdout: ${data}'); }); console.log('set up close…..'); child.on('close', (code) […]

使用casperjs下载资源图像文件

我阅读文件,看起来像你需要slimerjs http://docs.casperjs.org/en/latest/events-filters.html为了从page.resource.received事件获取responseData.body 。 我的用例是当页面加载的时候下载图片,所以我不做另外一个往返:获取资源JSON,下载并保存任何图像文件,重新加载文件检查图像尺寸,如果太小(图标) – >消除。 我想知道是否有更好的方法来做到这一点。 我其实可以去evaluate imgselect器,但一些网站使用background-url css,这是棘手的。

节点幻像不在网页上启用JavaScript

我正在使用节点幻像将项目发布到网站上的购物车。 问题是,当我使用page.open导航到购物车页面(已经添加到购物车后),我得到一个HTML响应,说我需要在浏览器中启用JavaScript以查看购物购物车页面。 我已经检查了settings.javascriptEnabled设置,并发现它被设置为“true”。 在这一点上,我很困惑,为什么页面认为phantomjs没有启用JavaScript? 这是我的代码: var phantom = require('node-phantom'); phantom.create(function (err, ph) { ph.createPage(function (err, page) { page.get('settings', function(err, oldSettings) { console.log('\r\n oldSettings: ' + JSON.stringify(oldSettings)); page.open('http://www.somesite.com/shoppingcart/default.cfm', function (err, status) { page.injectJs(jqueryPath, function (err) { setTimeout(function() { page.evaluate(function (injectedSku) { var localErr; var skuInCart; var checkoutLnkMsg; var pageHTML; try { pageHTML = $("html").html(); // Get […]

使用selenium-webdriver和phantomjs在nodejs中设置用户代理

我需要更改我的PhantomJS浏览器的用户代理,它驱动着selenium-webdriver。 我find了在C#,Ruby和Java中更改用户代理的方法 这是我试过的: var webdriver = require('selenium-webdriver'); var useragent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0"; var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.phantomjs("phantomjs.page.settings.userAgent", useragent)). build(); Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34

AWS Lambda上的权限问题,无法产生subprocess

所以我创造了这个漂亮的小lambda,在当地运行很好,但是在野外实际上没有那么多。 lambda需要事件,在事件源中使用html,将该html转换为PDF(使用html-pdf节点模块),将该pdf传递给s3存储桶,然后将签名的URL返回,过期时间为60秒。 或者至less这是应该发生的(再次,在本地工作)。 在Lambda上进行testing时,出现以下错误: { "errorMessage": "spawn EACCES", "errorType": "Error", "stackTrace": [ "exports._errnoException (util.js:870:11)", "ChildProcess.spawn (internal/child_process.js:298:11)", "Object.exports.spawn (child_process.js:362:9)", "PDF.PdfExec [as exec] (/var/task/node_modules/html-pdf/lib/pdf.js:87:28)", "PDF.PdfToFile [as toFile] (/var/task/node_modules/html-pdf/lib/pdf.js:83:8)", "/var/task/index.js:72:43", "Promise._execute (/var/task/node_modules/bluebird/js/release/debuggability.js:272:9)", "Promise._resolveFromExecutor (/var/task/node_modules/bluebird/js/release/promise.js:473:18)", "new Promise (/var/task/node_modules/bluebird/js/release/promise.js:77:14)", "createPDF (/var/task/index.js:71:19)", "main (/var/task/index.js:50:5)" ] } 这里是代码本身(不编译,有一个方便的一口气任务) if(typeof regeneratorRuntime === 'undefined') { require("babel/polyfill") } import fs from 'fs' import pdf from […]

如何从nodejs中的phantomjs stdout中读取图像来提供它?

可能有些细节我缺less,因为光栅化脚本可以很好地独立运行,但是到目前为止,我还没有成功地从NodeJS读取它的输出。 这是NodeJS的一部分: var http = require('http'); var qs = require('querystring'); var fs = require('fs'); var spawn = require('child_process').spawn; var SCRIPT = fs.readFileSync('./script.js', { encoding: 'utf8' }); http.createServer(function (request, response) { var body = ''; request.on('data', function (data) { body += data; }); request.on('end', function () { var postData = qs.parse(body); var phantomOut = ''; var […]