Tag: casperjs

使用CasperJS将结果写入文件

如何在文件系统中创build一个文件,并将this.getPageContent()的内容放在里面?

在Windows上安装CasperJS:如何正确执行?

我知道CasperJS网站上有一个关于如何在Windows上安装CasperJS的文档,但是对我来说这些人只是为专业人士解释。 如果你对所有这些CasperJS和PhantomJS世界都是陌生的,那么你就不会有机会理解甚至花费两天的时间来searchnetworking,以获得更好的解释。 我正在做一个项目,需要在我的项目网站上列出的每个网站的截图,环顾四周,我发现PhantomJS将是伟大的这项任务(网站截图)。 我下载了PhantomJS,并在system32粘贴了它的phantomjs.exe文件,当我使用cmd.exe发送命令时,它运行良好。 我甚至phantomjs.exe只抓取phantomjs.exe截图。 但是当我注意到当这两个工作在一起的时候(CasperJS和PhantomJS),当我使用CasperJS的时候,甚至可以减less屏幕截图的大小,我的问题就来了。 事实上,我唯一需要CasperJS的地方是限制了镜头大小,但是从昨天开始我一直在试图弄清楚如何使CasperJS在Windows上工作,但是没有用。 我已经下载CasperJS并试图以许多方式安装它也试图按照文档,但没有。 我将CasperJS文件夹名称从其下载名称更改为CasperJS作为文档build议,但是当我检查cmd试图调用某些命令时,没有任何反应。 无论如何,削减故事拍摄任何人都可以帮助我简单地说,考虑到我是一个新手解释如何CasperJS可以安装在窗口上,或者如果可能与PhantomJS只能如何重新大小的程序产生的Iamge让我说如果我想要960到400像素。

前端testing:testing什么和如何testing,以及使用什么工具?

我一直在为Ruby代码编写testing,但是作为一个前端开发人员,我显然有兴趣把它写入我为我的前端代码编写的代码中。 有很多不同的select,我一直在玩: CasperJS 水豚&Rspec 茉莉花 黄瓜或只是Rspec 什么是人们使用testing? 还有,人们testing什么呢? 只是JavaScript? 链接? forms? 硬编码的内容? 任何想法将不胜感激。

什么是“那么”在CasperJS中真正的意思

我正在使用CasperJS通过网站自动化一系列点击,完成表单,parsing数据等。 卡斯珀似乎被组织成一个预设步骤的列表, then语句的forms(参见他们的例子: http : //casperjs.org/quickstart.html ),但不清楚是什么触发了下一个语句实际运行。 例如,是否等待所有待处理的请求完成? injectJS是否injectJS视为未决请求? 如果我有一个嵌套在一个open语句结尾的语句,会发生什么呢? casper.thenOpen('http://example.com/list', function(){ casper.page.injectJs('/libs/jquery.js'); casper.evaluate(function(){ var id = jQuery("span:contains('"+itemName+"')").closest("tr").find("input:first").val(); casper.open("http://example.com/show/"+id); //what if 'then' was added here? }); }); casper.then(function(){ //parse the 'show' page }); 我正在寻找关于CasperJSstream程如何工作的技术解释。 我的具体问题是,我最后的陈述(上面)运行在我的casper.open声明之前,我不知道为什么。

无头浏览器和刮 – 解决scheme

我试图把浏览器自动testing套件和无头浏览器平台的可能的解决scheme清单能够刮。 浏览器testing/清理: Selenium – 浏览器自动化中的polyglot旗舰,为Python,Ruby,JavaScript,C#,Haskell等提供绑定,用于Firefox(作为扩展)的IDE,用于更快的testing部署。 可以作为一个服务器,并具有吨的function。 JAVASCRIPT PhantomJS – 使用屏幕截图和自动化的JavaScript无头testing,使用Webkit 。 从版本1.8开始,Selenium的WebDriver API被实现,所以你可以使用任何的WebDriver绑定和testing将与Selenium兼容 SlimerJS – 与PhantomJS类似,使用Gecko (Firefox)而不是WebKit CasperJS – 基于PhantomJS和SlimerJS构build的JavaScript ,具有额外的function Ghost驱动程序 – 用于PhantomJS的WebDriver Wire Protocol的 JavaScript实现。 新的 PhantomCSS – CSS回归testing。 一个CasperJS模块,用于使用PhantomJS和Resemble.js自动进行可视化回归testing。 新的 WebdriverCSS – Webdriver.io的插件,用于自动化视觉回归testing 新的 PhantomFlow – 通过testing描述和可视化用户stream程。 Web用户界面testing的一种实验方法。 新的 trifleJS – 移植 PhantomJS API来使用Internet Explorer引擎。 新的 CasperJS IDE (商业) Node.js的 节点 – […]

CasperJS将数据传回给PHP

CasperJS被PHP用exec()命令调用。 在CasperJS完成其工作(如检索网页的某些部分)之后,如何将检索到的数据返回给PHP?

为什么this.evaluate不正确地返回DOM节点?

我试图通过evaluate()方法从网页中获取对象,所以我可以在evaluate范围之外使用它。 用名称symbolselect的元素是一个带有<options> (=下拉菜单)的<select>标签。 casper.then(function () { var elmnt = this.evaluate(function () { return document.getElementsByName("symbol")[0]; }); console.log(elmnt.options[14].index); }); //Returns TypeError: 'null' is not an object (evaluating 'elmnt.options[14].index') casper.then(function () { var elmnt = this.evaluate(function () { return document.getElementsByName("symbol")[0].options[14].index; }); console.log(elmnt); }); //Returns 14 所以它看起来像通过evaluate()方法返回一个对象返回它不完整,因为这工作正常: casper.then(function () { var elmnt = this.evaluate(function () { return document.getElementsByName("symbol")[0]; }); […]

如何使用casperjs来捕获和处理来自XHR响应的数据?

网页上的数据是dynamic显示的,似乎检查HTML中每一个变化和提取数据是一项非常艰巨的任务,也需要我使用非常不可靠的XPath。 所以我希望能够从XHR数据包中提取数据。 我希望能够从XHR数据包中提取信息,并生成要发送到服务器的“XHR”数据包。 提取信息部分对我来说更重要,因为信息的发送可以通过使用casperjs自动触发html元素来轻松处理。 我附上我的意思的截图。 响应选项卡中的文本是我以后需要处理的数据。 (这个XHR响应已经从服务器收到。)

CasperJS绑定问题

我试图达到一个instagram页面,但没有运气。 我不断收到错误和一个空白的截图。 错误文本: TypeError: 'undefined' is not a function (evaluating 'a.createDescriptor.bind(null,t)') Casperjs – 版本是1.1.0-beta3。 基本上我使用下面的代码: var casper = require('casper').create({ verbose: true, logLevel: 'debug', pageSettings: { userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4' }, loadPlugins: true }); casper.on( 'page.error', function (msg, trace) { this.echo( 'Error: ' + msg, 'ERROR' […]