Tag: zombie.js

Zombiejs jQuery nullTypeError’compareDocumentPosition’

Zombie:无法读取属性’compareDocumentPosition’的null TypeError:无法读取null的属性’compareDocumentPosition’ 每当我尝试使用Zombiejs加载包含jQuery的页面时,就会发生这种情况。 这在Debian和Windows上发生,包含各种不同的页面,使用不同版本的jQuery,页面上没有别的东西。 它似乎与jsDom在页面文档准备好之前评估jQuery的方式有关,但它远远超出了我的想象。 任何人遇到这个,知道解决方法,或有任何指针? 谢谢! 更新:这是我的测试(实际通过,但运行调试显示我提到的错误): zombie = require “zombie” browser = new zombie.Browser({debug: false}) $ = require “jquery” require “should” app = “http://localhost:3000/” describe “app”, -> describe “index”, -> it “should display correct title”, (done) -> browser.visit app, (err, browser) -> done() 这是错误: Zombie: GET http://localhost:3000/js/jquery-1.7.1.js => 200 Zombie: Cannot read property […]

使用Zombie.jsvalidationQunit的结果

我正在使用Qunit进行测试驱动开发:在创建新函数时,我为它编写测试,创建函数,重新加载页面,如果所有测试都通过,我继续…虽然这在开始时工作正常,一段时间后,它开始成为一个耗时的过程,因为所有测试都需要几秒钟才能运行,而这是我每次刷新浏览器时都要等待的时间。 为了解决这个问题,我考虑引入Zombie.js来执行无头测试:想法是让Zombie.js不断检查网页(例如$ watch -n1 “node queryTheWebpage.js” )并报告给编码时Qunits的结果(偶尔,由于Zombie.js不是“真正的”浏览器,我会打开一个浏览器并手动检查页面进行validation)。 到目前为止,这里是我的节点/ Zombie代码片段: browser.visit(“http://localhost/mywebpage.html”, function () { var qunit_tests = browser.query(‘body’); console.log(qunit_tests.innerHTML); }); 在控制台输出中,我确实看到Qunit测试容器 但它是空的,这意味着当调用visit回调函数时,测试没有运行。 我试过使用wait函数等待测试运行,但是没有成功: function waitForQunitToEnd(window) { var last = window.document.querySelector(‘selectorOfMyLastTest’); var first_failed = window.document.querySelector(‘li.failed’); return (last || first_failed); } browser.visit(“http://localhost/mywebpage.html”, function () { browser.wait(waitForQunitToEnd, function() { var qunit_tests = browser.query(‘body’); console.log(qunit_tests.innerHTML); // still gives me empty […]

在Zombie.js中使用jQuery

我意识到还有其他库用于与Zombie一起使用类似jQuery的语法,但出于我的目的,我特别希望/需要使用jQuery本身以保持与一些早期编写的代码的兼容性。 我安装了npm jQuery包,我一直在尝试将jQuery导入到我的脚本中,然后使用Zombie返回的窗口初始化它,如下所示: var Zombie= require(“zombie”), $ = require(“jquery”) , zombie = new Zombie(); zombie.visit(“http://www.mysite.com”, function (err, browser, status) { if(err) { console.log(“Error: ” + err); } //Initialize a new jQuery instance with the current window returned by Zombie var $window = $(browser.window); //Get an actual jQuery object so we can search for stuff var […]