Tag: casperjs

在heroku上运行每个cronjob的casperjs

我已经在casperjs中创build了一个从网站上下载体育数据的应用程序。 我想运行这个应用程序每个cronjob在heroku上,以保存在csv,数据库或外部的谷歌文档(还没有决定)的体育成绩。 不过,在我开始为heroku实施之前,我有一个问题: 我发现这个heroku buildpack ,声称它可以运行casperjs scirpts。 但是,我需要nodejs来运行脚本吗? 或者我可以在heroku上创build一个cronjob? 我真的很感激你的回复!

Phantom,Casper和Meteor为什么需要自己的可执行文件?

幻影 和meteor都是build立在节点之外的,卡斯帕是build立在幻影之外的。 为什么他们每个都需要自己单独的可执行文件,而不是通过Node.js来创build库? (我发现这使得它们更难以使用,特别是在Windows上)。

将phantomJS部署到node.js应用程序?

我意识到“在Heroku上运行PhantomJS”是一个相关但略有不同的问题,因为我正在尝试使用节点应用程序。 我在为节点应用程序部署casperJS(基于phantomJS)脚本时遇到问题。 我已经尝试通过将PhantomJS 64位二进制文​​件放入我的应用程序的/bin目录来尝试部署到Heroku,但是当我尝试运行PhantomJS时遇到以下错误: phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory 从我读过这可以通过安装QtWebKit库解决,但Heroku没有安装。 是否有另一个托pipe服务提供商可以使用,或者在Heroku上安装这个软件包? 相关代码: app.get('/', function(request, response) { var sys = require('sys') var exec = require('child_process').exec; var child; //works but gives error while loading shared library libqtwebkit.so.4 child = exec("phantomjs –version | tr -d '\n'", […]

Phantom.js / Casper.js与旋转代理?

我有一个简单的目标:加载网页与phantom.js (开箱)或casper.js (好,更容易),但使用代理,并从列表中旋转它 ,如果目前的一个坏(即网页加载失败或类似的东西那)。 我知道casper.js有–proxy参数,但它决定了用户只能指定一个代理并在运行时使用它。 问题1是:如何以编程方式轮播代理? 我做了一些研究,发现这个节点请求者,但它没有与casper.js集成。 我试图在代码中提取出代理function,但并没有真正理解它是如何工作的(我不是很聪明,我猜)。 所以问题2:是否有一些代理旋转的简单实现可以与phantom.js或casper.js ? 我更喜欢使用花式的casper.js但是也会用phantom.js 。

如何在CasperJS中打开一个新标签

我现在使用CasperJStesting框架做了一些testing套件,但是我正面临着一个问题。 这是我想要做的:我正在浏览一个url(page1),我不得不从另一个url(模拟一个新的选项卡,就像我们在graphics浏览器中所做的),而不必退出第一个(page1)的另一个动作。 从第二个url的行动将改变我的第一个。 希望这是清楚的:) 所以现在当我到达第一个url的时候,我打开第二个url,通过执行一个thenOpen() ,所以这是一个新的导航步骤,我失去了当前的会话,我不能回头。 我尝试了许多方法,例如使用历史logging,重新打开页面,使用CasperJS中的事件,还尝试使用PhantomJS,但没有成功。 下面是一些伪代码,使其更清晰: casper.test.begin("A random test suite", 0, function testSuite(test) { casper.start(url1, function () { casper.then(function() { // do some action on the first url }); casper.then(function () { // open url2 and do some action in a new tab to not lose the session of url1 }); casper.then(function () […]

CasperJS,并行浏览与testing框架

问题:我想知道是否有可能在一个脚本文件中使用testing框架进行并行浏览,所以使用tester模块和casperjstesting命令。 我见过一些人创build了两个casper实例: CasperJS同时请求和https://groups.google.com/forum/#!topic/casperjs/Scx4Cjqp7hE ,但正如文档中所述,我们不能创build新的casper实例在一个testing脚本。 所以我试着做一个类似的简单的例子 – 一个caspertesting脚本(只需复制并执行这个工作): var url1 = "http://casperjs.readthedocs.org/en/latest/testing.html" ,url2 = "http://casperjs.readthedocs.org/en/latest/testing.html" ; var casperActions = { process1: function () { casper.test.begin('\n********* First processus with our test suite : ***********\n', function suite(test) { "use strict"; casper.start() .thenOpen(url1,function(){ this.echo("1","INFO"); }); casper.wait(10000,function(){ casper.test.comment("If parallel, it won't be printed before comment of the second processus !"); […]

如何编写自己的CasperJS模块?

例如,我有一个经常需要执行的步骤,例如用户在一些testing之前login。 如何为CasperJS编写可重用的代码块? 他们扩展CasperJS的文档只写成一个文件。 谢谢!

如何获得casper.js http.status代码?

我有以下简单的代码: var casper = require("casper").create({ }), utils = require('utils'), http = require('http'), fs = require('fs'); casper.start(); casper.thenOpen('http://www.yahoo.com/', function() { casper.capture('test.png'); }); casper.on('http.status.404', function(resource) { this.echo('wait, this url is 404: ' + resource.url); }); casper.run(function() { casper.exit(); }); 有没有办法赶上http.status代码,不pipe它是什么? 现在我可以在文档中看到如何捕捉特定的代码事件。 如果我只想看看它是什么呢?

使用casperjs中的节点模块

是否可以安装通过npm安装的节点模块,然后从casperjs脚本中获取? (我看到很多post和工具,用于在node.js中运行casper或phantom,但这不是我想要做的。) casperjs文档似乎说这是可能的,但只能用手写的玩具模块来展示,而这些模块并不真正做任何事情。 我试图安装的真实世界的模块是imap ,但在这一点上,我不能得到任何模块的工作,即使内置的net 。 简单的例子: npm install imap echo "var test = require('imap');" > test.js casperjs test.js 给我: CasperError: Can't find module imap /usr/local/src/casperjs/bin/bootstrap.js:263 in patchedRequire test.js:1 (我可以从npm ls看到imap模块,我可以从node.js脚本中使用它)。 或者使用内置模块: echo "var test = require('net');" > test.js casperjs test.js 抱怨“找不到模块网” 我有npm –version 1.4.14和nodejs –version v0.10.29。 那些太旧了,我想知道? (Casper是1.1.0-beta,Phantom是1.9.7,两者都是最新版本。)

SlimerJS extensions.getAddons.cache.enabled

我遇到了一个通过CasperJS运行SlimerJS的问题,我得到了下一条消息“ 1414441945905 addons.repository WARN cacheEnabled:无法获得pref:extensions.getAddons.cache.enabled” 。 我有一个与CasperJS和Slimer(0.9.3)一起运行的nodejs scrapper作为引擎。 这个过程由另一个进程执行(作为一个child_process.spawn)。 此外,这个过程是与PM2预定。 它运行正常,但有时会抛出这个错误,它挂断了,有什么想法?