将javascript注入zombie.js

Cha*_*bon 7 javascript node.js headless-browser zombie.js phantomjs

嗨,我想知道节点js和zombie js是否有能力将javascript文件注入无头浏览器,类似于你可以用phantomjs做什么.

例如,在幻影js中你会这样做:

page.injectJs("amino/TVI.js")
Run Code Online (Sandbox Code Playgroud)

我已经使用了phantomjs,它确实做了我想做的事情,但是由于使用幻像js所需的高内存,我正在测试其他选项.

sha*_*zhu 6

您可以将脚本标记附加到文档对象中,因为它支持僵尸中的DOM API.

以下示例显示如何将jquery插入zombie主页:

var Browser = require("zombie");
var assert = require("assert");    

// Load the page from localhost
browser = new Browser()
browser.visit("http://zombie.labnotes.org/", function () {    

  assert.ok(browser.success);

  // append script tag
  var injectedScript = browser.document.createElement("script");
  injectedScript.setAttribute("type","text/javascript");
  injectedScript.setAttribute("src", "http://code.jquery.com/jquery-1.11.0.min.js");    

  browser.body.appendChild(injectedScript);    

  browser.wait(function(window) {
    // make sure the new script tag is inserted
    return window.document.querySelectorAll("script").length == 4;
  }, function() {
    // jquery is ready
    assert.equal(browser.evaluate("$.fn.jquery"), "1.11.0");
    console.log(browser.evaluate("$('title').text()"));
  });
});
Run Code Online (Sandbox Code Playgroud)