Articles of zombie.js

摩卡,CoffeeScript,ZombieJS,Tim​​out?

我遇到了一个奇怪的问题,我不知道为什么这样做。 我使用express-coffeescript作为框架,用于testing的应用程序,chai和zombiejs的mochatesting。 request = require 'request' Browser = require 'zombie' assert = require 'assert' chai = require 'chai' should = require 'should' expect = chai.expect chai.should browser = new Browser() describe 'GET /login', -> it 'should login a user successfully', (done) -> browser.on "error", -> console.log "Error" browser.visit "http://localhost/test-laravel/public/login", (browser), -> browser.fill "username", "TheHydroImpulse" browser.fill […]

Zombie.js和写入窗口的脚本

我在Zombie.js遇到一些麻烦,并且正在评估将东西写入windowvariables的脚本。 这里是一个例子来展示我的意思: 假设我有一个脚本foo.js ,它执行以下操作: window.foo = 'foo'; 然后我使用zombie.js访问下面的html页面(其中包括foo.js ): HTML <!DOCTYPE html> <html> <head> <title>zombiejs test </title> <script type="text/javascript" src="foo.js"></script> </head> <body> <script type="text/javascript"> console.log(window.foo); </script> </body> </html> 我假设在执行foo.js之后, window.foovariables可以用于页面的其余部分,但是看起来并不如此: Browser.visit('http://localhost:8087/test.html') 给我undefined 。 这有什么特别的原因,或者我在这里做错了什么? Zombie.js是否将脚本评估到与运行页面不同的上下文中?

Openshift Zombiejs

我有一个Node.js / Express应用程序,我试图部署到Openshift。 服务器本身启动正常,并提供几乎所有的服务。 一个请求到服务器打开一个Zombiejs浏览器,然后爬网一些网页。 当浏览器试图访问一个网页,但是,我得到这个错误: { [Error: bind EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'bind' } Possibly unhandled Error: bind EACCES at errnoException (net.js:901:11) at connect (net.js:747:21) at net.js:842:9 at asyncCallback (dns.js:68:16) at Object.onanswer [as oncomplete] (dns.js:121:9) 我打电话visit浏览器就会失败: browser.visit(menus_url).then(function () { // do things }); 在做以上之前,我启动一个基于Express的服务器,如下所示: var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080; var server_ip_address […]

Quill.js和zombie.js

试图在zombie.js无头浏览器中testingquill.js编辑器(contenteditable div)。 抱怨关于document.getSelection丢失 抱怨关于document.createTreeWalker丢失 如果我使用编辑器的DOM节点手动分派更改事件,似乎没有响应。 任何人都知道如何做这个工作?

Node.js和coffeescript – testing与摩卡和僵尸的应用程序

我试图testing一个node.js webapp我已经开始与摩卡和僵尸工作。 但是还有一些事情我还是不明白,希望得到一些帮助。 请注意,我正在使用快递 假设我正在testing用户authentication。 显然有两个部分:1 – 用户界面2 – 行为,涉及控制器和模型所以,我决定分开这两个部分。 对于用户界面,我决定使用僵尸。 以下链接包含我为用户authentication编写的UItesting: https : //gist.github.com/7e45d6884ce2d32e933d基本上,我的用户authentication表单包含用户名和密码input字段以及loginbutton。 我对四种情况感兴趣:至less有一个input字段是空的,而且两个都是由用户提供的。 虽然现在四次testing都通过了,但是我仍然不相信他们是正确的testing,或者是否足够或者做了正确的事情。 你们(BDD专家)认为什么? 谢谢José

Zombieasynchronous加载多个JS文件

尝试僵尸几个小时,并兴奋的方式。 唯一的问题是,脚本似乎是asynchronous加载(这很酷),并按照它们下载的顺序(而不是按照“原始”HTML文件中提到的顺序)执行。 我会解释: <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script> <script>alert($('body'))</script> </head> http://jsfiddle.net/viebel/GWYEj/ – 下面的脚本加载jQuery并尝试使用它。 下载jQuery需要时间,但僵尸似乎在下载完成之前进入下一个脚本部分。 很显然,没有jQuery没有太多的意义(“身体”),因此我们得到以下错误: Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/ Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/ => 200 Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js Zombie: GET http://code.jquery.com/jquery-1.7.1.js Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js => 200 Zombie: Unexpected token } SyntaxError: Unexpected token } at Object._evaluate (/home/viebel/node_modules/zombie/lib/zombie/browser.coffee:136:28) in http://jsfiddle.net/viebel/GWYEj/show/:undefined:undefined<script> Zombie: GET http://code.jquery.com/jquery-1.7.1.js => 200 在“常规”浏览器中,代码stream畅运行。 是的,我们知道node.js不是真正的客户端JavaScript,但是Zombie.js应该是,不是吗? 请协助我们做错了什么。

Angularjs全面testing

你如何做一个nodejs / angularjs应用程序的完整堆栈testing。 我一直在zombiejs的testing间歇性失败和通过的问题。 我想要testing,模拟用户的交互(如水豚为rails或僵尸为nodejs)。 testing应该是forms(写作像黄瓜testing): 我去到/login页面 我填写电子邮件“test@user.com” 我填写密码“秘密” 我点击提交 我应该在/用户页面上 有没有任何框架可以帮助我的angular度应用程序的完整堆栈testing?

Cucumber.js Zombie.js最大调用堆栈大小超出未定义

我试图find(谷歌,stackoverflow等)由我自己的解决scheme,但不能。 我正在Win7上工作 黄瓜-js版本:0.4.0 节点版本:v.0.10.26 Zombie@2.0.0-alpha31 我想要做的是非常简单的..让我们去监护人login页面,然后login…但是,当我用僵尸访问该网站时,我得到这个消息: 最大调用堆栈大小超出未定义 如果我试图访问一个简单的HTML网站,它不会发生。 我能做些什么来避免这个问题? 码: var assert = require("assert"); var myStepDefinitionsWrapper = function () { this.World = require("../support/world.js").World; this.Given(/^I am on the Guardian site$/, function (callback) { this.browser.visit('https://id.theguardian.com/signin', callback); }); 正如你所看到的,它非常简单,基本的代码,但结果如下: 僵尸:打开窗口https://id.theguardian.com/signin僵尸:GET https://id.theguardian.com/signin => 200。 。 。 。 。 Zombie:GET SOMETHING JS => 200最大调用堆栈大小超过undefined鉴于我在监护人网站#features \ myFeature.feature:9 RangeError:最大调用堆栈大小然后,我应该看到“卫报”标题#features \ myFeature.feature :10 […]

不能在Windows 8.1上安装zombiejs

我一直试图安装通过npm install -g zombie zombie.js但不断收到此错误: LINK : fatal error LNK1104: cannot open file 'libcpmt.lib'我一直在寻找一个解决scheme,在过去的3小时,但一直没有运气。 我读了这可能是一个path问题,并使用vcvars32.bat但没有奏效。 我想使用zombie.js的原因是因为我需要在DOM中find每个链接的本地文件夹。 我会使用casperjs,但我不知道在nodejs和casperjs之间来回通信的方式 (收集当前文件夹名称,然后将其传递给casper,通过casper收集所有链接,将文件夹名称与链接名称进行比较,然后传递与节点不同的名称,以便可以根据这些名称创build新文件夹)

当使用JavaScriptdynamic加载页面内容时,使用Mocha + Zombie.js进行验收testing

我有一个问题,我一直在寻找解决scheme。 我有一个页面(快速应用程序),它有一个div#内容。 起初,它没有任何内容。 在页面加载时,调用JavaScript函数来确定用户是否已经login。如果不是,则在div#内容中填充login表单。 否则,用户configuration文件将显示在同一个div中。 这个程序是一个单页的应用程序。 所有的操作都由Ajax处理。 大部分内容也是dynamic生成的。 现在,我正在尝试用Mocha和Zombie.js写一些validationtesting。 但是,即使是这样一个简单的testing也不会通过: assert.equal(this.browser.text('div#content h1'), 'Login'); ..因为div#内容是空的。 我只是想知道是否有办法让所有dynamic填充内容的页面。 我尝试了browser.html(),将debug设置为true,将runScripts设置为true,对div#内容使用browser.wait(),以及许多其他方法,但是无法使其工作。 任何帮助将不胜感激。 谢谢!