繁体   English   中英

CasperJS-使用jQuery。 ReferenceError:找不到变量:jQuery / $

[英]CasperJS - using jQuery. ReferenceError: Can't find variable: jQuery/$

我正在CasperJS中编写涉及jQuery的代码。 偶然地,有人可以指出我在包含jQuery时所犯的错误吗? (经过45分钟的搜索,我开始认为这是本地问题。)

我已经尝试了以下两种方法:

casper.page.injectJs('C:\sweeps\jquery-1.10.2.min.js');

var casper = require('casper').create({
clientScripts: ["C:\sweeps\jquery-1.10.2.min.js"]
});

码:

// sample.js
var casper = require('casper').create();

var login = "some username"; 
var password = "some password";

casper.start('https://www.paypal.com/us/home', function() {
    this.fillXPath('form.login', {
        '//input[@name="login_email"]':    login,
        '//input[@name="login_password"]':    password,
    }, true);
});

casper.page.injectJs('C:\sweeps\jquery-1.10.2.min.js');

$("input[name='submit.x']").click();

   setTimeout(function(){ 
   setTimeout(function(){ 

casper.run(function() {

this.captureSelector('example2.png', '#page');

    this.echo('Done.').exit();

});

}, 30000); }, 1);

输出:

ReferenceError: Can't find cariable: jQuery
C:/sweeps/test2.js:21

当“ jQuery”切换为“ $”时,也会出现相同的结果。

编辑:我也尝试过相对路径。

我的参考是: 我可以在CasperJS中使用jQuery吗?

阅读此Casper#evaluate()

发现CasperJS时,这种方法背后的概念可能是最难理解的。 提醒一下,将Evaluate()方法看作是CasperJS环境和您打开的页面之一之间的大门。 每次将闭包传递给valuate()时,您都在进入页面并执行代码,就像使用浏览器控制台一样。

casper.evaluate(function() {
    $("input[name='submit.x']").click();
});

您需要像使用浏览器一样使用jQuery选择器。

您指向javascript文件的路径应该是相对于HTML文件的URI,而不是文件系统路径。 假设您的文件位于c:\\ sweepstakes文件夹中,请尝试

var casper = require('casper').create({
  clientScripts: ["jquery-1.10.2.min.js"]
});

另外,使用浏览器的网络/开发工具查看是否正在下载jQuery库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM