![](/img/trans.png)
[英]ReferenceError: Can't find variable: require - JQuery error
[英]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嗎?
發現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.