Articles of zombie.js

Zombie.js不会返回完整的HTML

我刚刚testing了Zombie.js,我让它访问StackOverflow上的login页面。 我的代码如下: var Browser = require("zombie"); // Load the page from localhost browser = new Browser() browser.visit("http://stackoverflow.com/users/login/", function () { browser.wait(3000, function (){ console.log(browser.html()); console.log(browser.success); }); }); 我试着环顾四周,我知道Zombie.js运行脚本并压缩HTML,但是在这种情况下,整个代码体缺失。 我不相信这是相关的,但返回的HTML代码是: <html><head> <title>Log In – Stack Overflow</title> <link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico" /> <link rel="apple-touch-icon" href="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" /> <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" /> <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script><script type="text/javascript" […]

Node.js – 为什么在使用摩卡和僵尸进行testing时会出现泄漏?

我试图让僵尸工作与摩卡,但除非我使用摩卡–ignore – 泄漏命令选项,我的testing总是失败,错误: Error: global leaks detected: k, i, name, chars, char 我的testing看起来就像这个线程中所解释的: Mocha和ZombieJS 我希望我可以在那里发布我的问题,但作为一个新手,我不能评论的线程,只问一个新的问题。 你有什么想法,为什么我得到这些泄漏? 我正在使用摩卡1.0.3和僵尸1.0.0。

用node.js中的僵尸填写日志

晚间! 我试图用zombie.jslogin到一个网站,但我似乎无法使其工作。 哦,这个网站是芬兰文的,但是不难理解,两个文本框和一个button。 首先是用户名,第二次是密码,button是loginbutton。 目前我login代码如下: var Browser = require("zombie"); browser = new Browser(); browser.visit("https://www.nordnet.fi/mux/login/startFI.html?cmpi=start-loggain", function () { // Here I check the title of the page I'm on. console.log(browser.text("title")); // Here I fill the needed information. browser.document.getElementById("input1").value ="MYUSERNAME"; browser.document.getElementById("pContent").value ="MYPASSWORD"; // And here it fails. I try to submit the form in question. browser.document.getElementById("loginForm").submit(); setTimeout(function […]

为什么Zombie.js不适用于Google Charts?

我有一个加载Google Chart API的简单网页: <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load("current", {packages:["corechart"]}); console.log("load() called"); </script> 当我用浏览器打开它时,它工作正常。 在Chrome中, load()调用请求一堆外部资源: 在僵尸中 ,只有一个外部资源被请求: zombie Opened window http://localhost/graph +7s zombie GET http://localhost/graph => 200 +17ms zombie Loaded document http://localhost/graph +15ms zombie GET https://www.gstatic.com/charts/loader.js => 200 +71ms load() called zombie Event loop is empty +135ms 这里是我简单的僵尸代码,供参考: Browser.visit('http://localhost/graph', function (err, browser) { if […]

将JavaScript注入到zombie.js中

您好,我想知道是否有能力在节点js和僵尸js注入javascript文件到无头浏览器,类似于你可以用phantomjs做什么。 例如在幻影js你会做: page.injectJs("amino/TVI.js") 我已经使用phantomjs,它做了我想要做的事情,但是我正在testing其他选项,因为使用幻像js所需的高内存。

纯粹的JavaScript解决scheme的谷歌Ajax可伸缩规范

我有一个基于JavaScript的项目(例如node.js,backbone.js等)。 我正在使用像/#!/ about这样的hashbangurl,并且已经阅读了google的ajax可search规范。 我已经做了一些与僵尸无头UItesting,可以很容易想到如何通过设置一个轻微的延迟和静态内容返回到谷歌机器人。 但是我并不想从头开始实现,希望有一个预先存在的库适合我的堆栈。 知道吗? 编辑:在写作时,我不认为这存在。 然而,在服务器和客户端上使用主干(或类似的)进行渲染是合理的方法(即使不是直接的答案)。 所以我打算把这个标记为答案,尽pipe未来可能会有更好的解决scheme。

僵尸浏览器调用open函数后不会打开窗口

工具 尝试1 达尔文14.3.0达尔文内核版本14.3.0 io.js v1.8.1 僵尸版本4.0.7 2015-04-10 尝试2 Linux ubuntuG5 3.13.0-48-powerpc64-smp node.js v0.10.38 僵尸版本3.1.0 2015-03-15 命令: const Browser = require('zombie'); var url = 'https://google.com' var browser = new Browser(); browser.open(url=url) browser.open('http://google.com', function(err) { browser.assert.success(); }); browser.assert.text('title', 'Google'); 在两台机器上的结果减去文件path差异: assert.js:93 throw new assert.AssertionError({ ^ AssertionError: No open window with an HTML document at Browser.queryAll (/home/dmmmd/Dropbox/node_js_projects/node_modules/zombie/lib/index.js:432:5) at […]

Zombie.js pressButton长callback延迟

我一直试图通过使用一堆console.logs来解决这个问题,仍然无法弄清楚为什么这些加载时间如此之长。 所以我在我的摩卡unit testing文件中的beforeEach中有下面的代码。 browser.fill('email', 'test1@test.com'); browser.fill('password', 'testtest'); browser.pressButton('Login').then(function () { console.log("#100 – "+ new Date().getTime()); done(); }); 在这种情况下按下button将有一些redirect,然后最后显示仪表板页面。 在该HTML文件的底部,我有以下代码。 <script> $(document).ready(function () { console.log("#200 – "+ new Date().getTime()); }); </script> 所以在运行testing后,如果我把#100之后的值减去 #200之后的值总是大约5000-6000。 因为#200总是在#100之前打印5-6秒。 我不明白为什么加载页面之后需要额外的5-6秒才能调用Zombie.js来调用callback函数。 Zombie.js在加载页面后是否有一些等待或延迟? 还有什么可能导致页面加载和Zombie.js调用该callback函数之间5-6秒的延迟? 编辑我现在有这个相同的问题,但像一个50000毫秒。 这真是在我所有的testing中快速加起来的。 我仍然无法弄清楚为什么会发生这种情况。 编辑2 如果我添加browser.debug()到我的testing它最后打印下面。 它还打印了很多其他的东西,但总的来说很快。 我认为以下可能是问题。 只是不知道为什么这样做或如何解决它。 zombie Fired setInterval every 5000ms +11ms zombie Fired setInterval every 5000ms […]

安装Zombie.js错误:ReferenceError:Set未定义。 我究竟做错了什么?

背景:目前我正在阅读Ethan Brown的“ 用Node和Express进行Web开发 ”(这是一本很棒的书,对于那些学习节点和快车),而我却陷入了第5章 – 质量保险。 一切顺利。 首先我跑了以下几点: npm install –save-dev摩卡 npm安装-g摩卡 npm install –save-dev chai npm install –save-dev僵尸 问题:然后我跑(按照书的指示): mocha -u tdd -R spec qa / tests-crosspage.js 2> / dev / null 但是这没有做任何事情。 所以然后我跑了: mocha -u tdd -R spec qa / tests-crosspage.js 然后出现这个错误: /Users/esanz91/Desktop/CodingNotes/Node/MySite/node_modules/zombie/node_modules/jsdom/lib/jsdom/level2/html.js:405 var nonInheritedTags = new Set([ ReferenceError:Set没有定义 版本:只是给你们一个想法,我已经安装了以下版本。 CMD: npm list […]

为什么在使用Bootstrap时,zombie.js浏览器会返回空的HTML?

我正在尝试使用Mocha和Zombie来testing我的Node.js / Express.js应用程序。 我可以通过简单的testing,但只要将Twitter Bootstrap的脚本标记添加到我的视图中,浏览器对象就会返回空的HTML。 这是我的testing代码: process.env.NODE_ENV = 'test'; var app = require('../app'); var assert = require('assert'); var Browser = require('zombie'); describe('home page', function() { before(function() { this.server = app.listen(3000); this.browser = new Browser({site: 'http://localhost:3000', debug : true}); }); it('should show welcome', function(done) { var browser = this.browser; browser .visit("/") .then(function() { console.log(browser.html()); }) .fail(function(error) […]