在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 document = $window("body"); var inputBoxUsername = document.find("input#username"); console.log(inputBoxUsername.html()); });
这不起作用,因为它说没有html()
函数,并且jQuery实际上似乎没有返回我期望的对象。
有没有办法在僵尸中使用jQuery?
如果您的站点已经加载了jquery,您可以立即使用加载的jQuery,这在某些情况下要容易得多。
var document = browser.window.$("body");
将按预期工作,因为它是一个jQuery对象。
我认为你无论如何都可以添加脚本文件,所以你可以动态添加jQuery并按我刚才提到的那样使用它。
希望这可以帮助!
如果您使用的页面不包含jQuery,并且您只检索数据,那么请尝试在Zombie之上使用Cheerio:
zombie.visit("http://example.com", function () { var $ = cheerio.load(browser.html()); console.log($('title').text()); }