javascript – 使用Zombie.js查询Backbone.js应用程序的DOM
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用Zombie.js查询Backbone.js应用程序的DOM,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2741字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 使用Zombie.js查询Backbone.js应用程序的DOM](/upload/InfoBanner/zyjiaocheng/769/6501b68c9fcb48ecbeb5c1dfc3fefb57.jpg)
今天第一次尝试Zombie.js,我无法访问通过javascript(特别是Backbone.js应用程序)填充DOM元素的页面.作为一个简单的例子,我访问了Backbone.js Todo app并手动添加了一些项目.然后我尝试使用Zombie抓取#todo-list元素中的html,它又回来了.我设置了browser.runScripts = true,所以不应该为Zombie查询一切准备好了吗?
查看源代码,内部HTML确实是空的. Zombie.js甚至可以实现这一点吗?或者我需要使用像Jasmine这样的东西,如here所做的那样?
我在下面列出了示例代码,以及我得到的响应.
var zombie = require('zombie'),
vows = require('vows'),
assert = require('assert');
var baseUrl = 'http://documentcloud.github.com/backbone/examples/todos/index.html';
vows.describe('Zombie Tests on a Backbone App').addBatch({
'Navigate to Todo List' : {
topic: function () {
browser = new zombie.Browser({ debug: true });
browser.runScripts = true;
browser.on('error',function (err){console.log(err.stack)});
browser.visit(baseUrl, this.callback);
},
'Can see todo list' : function (err,browser,status) {
console.log('todo-list inner:' + browser.querySelector("#todo-list").innerHTML);
// actual tests would go here
}
},
}).export(module);
运行誓言的输出:
> vows test/todo-test.js --spec
? Zombie Tests on a Backbone App
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/index.html
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/index.html => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/json2.js
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/jquery-1.5.js
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/underscore-1.1.6.js
Zombie: GET http://documentcloud.github.com/backbone/backbone.js
Zombie: GET http://documentcloud.github.com/backbone/examples/backbone-localstorage.js
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/todos.js
Zombie: GET http://documentcloud.github.com/backbone/examples/backbone-localstorage.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/json2.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/underscore-1.1.6.js => 200
Zombie: GET http://documentcloud.github.com/backbone/backbone.js => 200
Zombie: GET http://documentcloud.github.com/backbone/examples/todos/todos.js => 200
Zombie: GET http://documentcloud.github.com/backbone/test/vendor/jquery-1.5.js => 200
Zombie: Firing timeout 1, delay: 1
todolist inner:
Navigate to Todo List
? Can see todo list
? OK ? 1 honored (3.824s)
解决方法:
如果您使用browser.html方法,那么您的示例可行 – 我认为问题来自没有querySelector方法的浏览器对象(但它确实有query and queryAll method).
这是经过修改的工作片段:
'Can see todo list' : function (err, browser, status) {
var list = browser.html('#todo-list');
console.log('todo-list inner: ' + list);
// actual tests would go here
}
内容总结
以上是互联网集市为您收集整理的javascript – 使用Zombie.js查询Backbone.js应用程序的DOM全部内容,希望文章能够帮你解决javascript – 使用Zombie.js查询Backbone.js应用程序的DOM所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。