Javascript jQuery不工作,但document.querySelector工作(CasperJS)
网站在带有Javascript jQuery不工作,但document.querySelector工作(CasperJS),javascript,jquery,casperjs,Javascript,Jquery,Casperjs,网站在带有id=“IP” 当我使用returndocument.querySelector('#ip').innerText显示正确的IP地址,一切正常 但是,当我使用return$('#ip').text()时显示null 你知道为什么吗 var casper = require('casper').create(); casper.start("http://mikeyaworski.com/IP", function() { var ip = this.evaluate(fun
id=“IP”
当我使用returndocument.querySelector('#ip').innerText代码>显示正确的IP地址,一切正常
但是,当我使用return$('#ip').text()时代码>显示null
你知道为什么吗
var casper = require('casper').create();
casper.start("http://mikeyaworski.com/IP", function() {
var ip = this.evaluate(function() {
// return document.querySelector('#ip').innerText; // does work
return $('#ip').text(); // doesn't work, but it should
});
this.echo("\nYour public IP address is: " + ip);
});
casper.run();
我最终将jQuery从下载到了我计算机上的一个地方
然后我在这个话题上遵循了这个原则,它似乎奏效了(奇怪的是,因为在过去,我不需要遵循这些“规则”)
我的代码是这样结束的:
var casper = require('casper').create();
casper.start("http://mikeyaworski.com/IP", function() {
// this is the changed part
casper.page.injectJs('path/to/jquery-1.11.0.js');
var ip = this.evaluate(function() {
// return document.querySelector('#ip').innerText;
return $('#ip').text();
});
this.echo("\nYour public IP address is: " + ip);
});
casper.run();
这也起到了作用:
// this is the changed part
var casper = require('casper').create({
clientScripts: ["path/to/jquery-1.11.0.js"]
});
casper.start("http://mikeyaworski.com/IP", function() {
var ip = this.evaluate(function() {
// return document.querySelector('#ip').innerText;
return $('#ip').text();
});
this.echo("\nYour public IP address is: " + ip);
});
casper.run();
然而,我仍然觉得奇怪的是,在上,我使用jQuery很好,没有在任何地方注入它,甚至没有将它下载到我的计算机上。我想了解更多这方面的信息。显然,页面上早期版本的jQuery可能会与测试中使用的jQuery版本发生冲突。如果升级版本,两个jquery不会冲突。这与另一个线程有关:
有其他方法可以在不更改jQuery版本的情况下修复它。您确定$
是jQuery
?也许您加载了其他一些库,这是有冲突的。@Barmar我发布的是我的全部代码,我没有对任何库做过任何操作(据我所知)。我一直在关注答案。不过,这并不意味着$
就是jQuery。console.log($.fn.jquery)
告诉你什么?你加载jquery了吗?@Barmar:在evaluate
函数中记录它不会起任何作用。在evaluate
函数之外记录该值会给出ReferenceError:找不到变量:$
,这是我所期望的。没有,我想我还没有加载jQuery。然而,在另一个例子中,我没有“加载jQuery”(我想),结果它成功了。