我正在尝试将一些脚本注入到使用PhantomJs node桥加载到phantomjs中的页面中。
当我将MochaJ注入页面时,我可以进行计算,window.mocha对象就可用了。但是当我注入chaiJs时,window.chai对象不可用。
我已经验证了injectJs调用将true状态传递到回调中,这表明脚本已经成功注入,并且我还验证了window.chai和window.mocha在注入后立即可以在柱塞中使用,如下所示:http://plnkr.co/edit/gMzjavJqpNDNeYipmBHG?p=preview
我甚至尝试使用page.includeJs('http://cdnjs.cloudflare.com/ajax/libs/chai/1.10.0/chai.min.js')来确保在cloudflare cdn版本中没有差异,并且我拥有的npm安装版本仍然不起作用。
我做错了什么?
page.injectJs(nodeLibDir + '/chai/chai.js', function(){
//page.injectJs(nodeLibDir + '/mocha/mocha.js', function(){
page.evaluate(function(){
//window.callPhantom(window.mocha.constructor.name);
window.callPhantom(window.chai.version);
}, function(){
console.log('finished');
page.close();
res.json({status: status});
res.end();
});
});发布于 2015-05-23 05:19:56
事实证明,我测试的页面正在使用requireJs加载一些其他库,因此导致chai无法将其自身附加到window。我尝试了一个不同的页面,但这个页面并没有使用requireJs,它的工作方式和预期的一样。SMH。
https://stackoverflow.com/questions/30405727
复制相似问题