将JavaScript注入到zombie.js中

您好,我想知道是否有能力在节点js和僵尸js注入javascript文件到无头浏览器,类似于你可以用phantomjs做什么。

例如在幻影js你会做:

page.injectJs("amino/TVI.js") 

我已经使用phantomjs,它做了我想要做的事情,但是我正在testing其他选项,因为使用幻像js所需的高内存。

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

以下示例显示如何将jquery插入到僵尸主页中:

 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()")); }); }); 

试着想一想。 你已经掌握了所有你想要的东西。

例如: that.browser.window指向您的网站JavaScript的每个部分用作基地的jsdom窗口。 所以你可以访问已经加载的页面中的dom和所有其他窗口对象。

我不知道你要注射什么样的东西 – 你不应该用它进行testing,但看起来这不是你的实际目标