簡體   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