Tag: phantomjs

围绕asynchronous写一个循环,将并行读写文件?

我正在使用fs和phantomJS const phantom = require('phantom'); const fs = require('fs'); 我有4条路线 (url)从幻影JS打开。 当打开时,页面内容被读取,然后node.fs将这些内容写入到它自己的html文件中。 const routes = [ 'about', 'home', 'todo', 'lazy', ] 题: 如何并行地在const routes中的每个值循环这个asynchronous函数。 (async function() { const instance = await phantom.create(); const page = await instance.createPage(); const status = await page.open(`http://localhost:3000/${routes}`); const content = await page.property('content'); await fsPromise(`${routes}.html`, content); await instance.exit(); }()); const fsPromise […]

在PhantomJS中预先设置浏览器时区

我在我的nodejs代码中使用了PhantomJS作为subprocess预编译,并且每次对其进行栅格化时都需要为浏览器设置一个TZ。 它作为一个subprocess执行,如下所示: childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) { // handle results }); 调用函数时无法指定TZ。 任何想法如何实现?

无法在PhantomJS脚本中加载“cheerio”

我在Mac上使用节点版本4.8.1(自制安装),PhantomJS版本2.1.1和cheerio@0.22.0 现在,如果我需要像这样的phantomjs脚本cheerio // myscript.js var cheerio = require('cheerio'); console.log("done"); 并运行该脚本(没有其他的东西) $ phantomjs myscript.js 然后我会得到这个错误: TypeError: Object is not a constructor (evaluating 'require("inherits")(Parser, require("events").EventEmitter)') phantomjs://platform/Parser.js:124 我可以用PhantomJS做各种各样的事情。 我唯一不能使用的就是cheerio。 有没有一种方法让我在PhantomJS里面做快乐的工作? 还是可以替代cheerio的工作?

如何在phantomjs脚本中使用“node_redis”?

我想制作一个phantomjs脚本,作为消费者从redis服务器读取数据的值。 我看到存在这个客户端节点( https://github.com/NodeRedis/node_redis ),我连接,写入和读取没有问题执行节点脚本。 var redis = require("redis"), client = redis.createClient(); client.on("error", function (err) { console.log("Error " + err); }); client.set("string key", "string val", redis.print); client.get("string key", redis.print); 但是当我用phantomjs做同样的事情时,我得到这个错误: ReferenceError: Can't find variable: process phantomjs://platform/command.js:4 TypeError: undefined is not a constructor (evaluating 'util.inherits(assert.AssertionError, Error)') phantomjs://platform/assert.js:161 TypeError: undefined is not a constructor (evaluating 'util.inherits(RedisError, Error)') phantomjs://platform/redisError.js:17 […]

表单提交与casperjs – 新的url不加载

目标 在这里,我正在尝试在Pubmed网站上执行基本的search导航。 让我们说,我正在寻找的术语是Hello 。 我最后期望的是在点击searchbutton之后登陆一个结果页面。 问题 提交代码在Chrome浏览器的JavaScript控制台上完美工作。 但是它通过casperjs不起作用。 目前的url似乎保持不变。 我无法弄清楚问题在哪里。 我的代码 // USAGE: casperjs test navigation_test.js var config = { url: 'https://www.ncbi.nlm.nih.gov/pubmed/', }; config.form = { "term": "Hello", }; casper.test.begin('Testing navigation and forms', 2, function suite(test) { test.comment('⌚ Loading ' + config.url + '…'); casper.start(config.url, function() { // adjust the view port this.viewport(1280, 1024); }); […]

我怎样才能改变PhantomJS的屏幕分辨率?

无论如何,我无法find关于屏幕制裁改变的问题。 总是会有1024×768 。 更改viewportSize本身不会改变屏幕分辨率。 我检查了这里的决议: 链接 这是为节点: var WebPage = require('webpage'); page = WebPage.create() page.onInitialized = function () { page.evaluate(function () { window.screen = {width: 1600, height: 900, availWidth: 1600, availHeight: 900}; }); }; page.open('http://browserspy.dk/screen.php'); page.onLoadFinished = function () { page.render('ScreenShot' + '.png'); phantom.exit(); } 任何人都可以重新为Python?

如何在Windows 7上使用NodeJS / PhantomJS / CasperJS

我需要刮一个网站forms(即时),其中有AJAX和SESSIONS。 我做了大量的研究,并且遇到了几个可能的解决scheme,一个是Python :: Mechanize。 我不知道Python的python和cURL(从我的理解)不能处理AJAX或提交表单。 我发现我相信是可能的堆栈,可以导致我的恩典:)。 问题是我根本不知道如何使用这些软件包。 我下载并安装了NODEjs,我可以从cmd中调用它。 (大) 我下载并安装PhantomJS(不知道如何设置PATH以便它是dynamic的,所以我必须在CMD中手动cd到DIR以使其加载)如何在Windows 7中设置此? 不知道在哪里指path。 下载CasperJS – 放入DIR 所以在phantomjs上,我能够运行一个testing文件,在CMD提示符中回显“hello world”。 而现在我不知道如何继续。 – 非常需要这个从我的web服务器上运行(即时) – 所以它需要被实现到我的网页。 到目前为止,我只想从CMD中运行它,然后转到一个页面,提交一个表单,刮取结果,并将其写入一个文件。 有人可以解释一下,像我可以做到这一点的工作stream程? CasperJS – >显示了这个表单的例子。 我想用我的variables来实现,运行脚本并保存结果。 casper.start('http://some.tld/contact.form', function() { this.fill('form#contact-form', { 'subject': 'I am watching you', 'content': 'So be careful.', 'civility': 'Mr', 'name': 'Chuck Norris', 'email': 'chuck@norris.com', 'cc': true, 'attachment': '/Users/chuck/roundhousekick.doc' }, true); […]

build立dynamicHighCharts和图像Highcharts与(主要)一个代码库?

我们已经为我们的网页创build了dynamic的HighCharts – 这些有一些JavaScript依赖和图表生成脚本。 我们希望使用HighCharts新的HighCharts / Node / PhantomJS套件创build这些图表的PDF文件(请参阅新闻稿 )。 我们的image-gen节点服务器将运行在一个单独的box / vm上。 我们如何做到这一点,而不必为同一个图表维护两个单独的代码库? 我还不太熟悉Node,所以我不确定如何通过Web请求来请求脚本。 我猜想许多HighCharts用户想要开始生成他们的一些图表,因为服务器端将会遇到与pipe理两个相关代码集类似的问题。 实质上,我们已经有了这个: Webserver – > JSON(data)+ foo.js + bar.js + foo.html – >dynamic图表的网页。 我们想build立: Web服务器 – > JSON(数据)+单独的节点服务器+ foo.js + bar.js – >图像可通过Web请求 显然有些冗余。 我们如何pipe理依赖关系?

幻影茉莉花找不到规格

我正在尝试使用幻影茉莉花 。 我在我的系统(Mountain Lion和Ubuntu)上安装了phantomjs(1.9.1),使用npm安装了phantom-jasmine。 问题是当我尝试运行幻像茉莉花的例子/ TestRunner.html从他们的例子我得到0规范,0失败虽然它应该是3个规格,在输出1失败。 如果我从浏览器打开TestRunner.html,它的行为如预期,但幻影茉莉花似乎无法find规格。 另一件事是当我提供绝对path(phantom-jasmine /home/me/phantom-jasmine/examples/TestRunner.html到TestRunner.html 这发生

基于浏览器的Phantom / Caspertesting

我正在使用casper来testing用户界面或网站。 我想知道如果我可以在不同的浏览器,如使用casper的IE / Chrome / Firefoxtesting它们的兼容性。 此外,如果不能做到这一点,还有没有其他的方法来做到这一点,而不是从casper切换?