用于检查DOM元素的Node.js模块

fab*_*lin 3 javascript node.js zombie.js

我正在使用zombie.js,一个无头浏览器,主要用于测试目的.它创建了一个浏览器对象,一旦visit()调用该函数,您就可以使用给定页面的DOM.但是,我无法达到这个程度.看起来僵尸中使用的解析器存在问题.这是错误:

User/murf/Documents/workspace/node_code/node_modules/zombie/node_modules/html5/lib/html5/tokenizer.js:62

有没有人发现过类似的问题?如果是这样,有没有办法解决它?或者是否有另一个节点模块执行类似的工作?任何想法都非常感谢.

谢谢

Amj*_*sad 6

ZombieJS和其他Web测试工具都是基于JSDOM构建的,它非常像Zombie一样易于使用.但是问题是你没有"类型"这样的东西,但你可以在JSDOM中轻松模拟它,例如:

var jsdom = require("jsdom");

jsdom.env("http://nodejs.org/dist/", [
  'http://code.jquery.com/jquery-1.5.min.js'
], function(errors, window) {
  console.log("there have been", window.$("a").length, "nodejs releases!");
});
Run Code Online (Sandbox Code Playgroud)

这是来自JSDOM的代码示例,因此如果您想要模拟类型,则必须keydown手动触发实例

$('someInput')
              .val('x')
              .keydown();
Run Code Online (Sandbox Code Playgroud)

这将以某种方式模拟type('x'),例如.谷歌搜索将触发获取建议框.
但是,为了正确模拟它,您必须使用keyCode和所有内容创建keydown事件.

我正在开发一个名为htmlnode的新无头浏览器,但它仍在进行中,预计将在下周使用,并且它建立在HtmlUnit之上.

其他选择: