2014-01-10 3 views
0

Я пишу код, который включает jQuery в CasperJS. Случайно, может кто-нибудь указать на ошибку, которую я сделал, включая 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» переключается на «$».

EDIT: Я также пробовал относительный путь.

Моя ссылка: Can I use jQuery with CasperJS?

+0

'/ path/to/jquery.js' является относительным путем. Как правило, не используйте абсолютные пути. – elclanrs

+0

Извините, не включил, что ive попробовал родственника. Я видел рекомендацию по теме google, чтобы попробовать. Я пробовал относительный, и это не удалось –

ответ

1

Читать эту Casper#evaluate()

The concept behind this method is probably the most difficult to understand when discovering CasperJS. As a reminder, think of the evaluate() method as a gate between the CasperJS environment and the one of the page you have opened; everytime you pass a closure to evaluate(), you’re entering the page and execute code as if you were using the browser console.

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

Вы должны использовать селектор JQuery, как если бы вы были в браузере.

+0

Awsome! Благодарю. Ты прав. Очень объяснительно. Спасибо за быстрый ответ. –

+0

Добро пожаловать;) – dcodesmith

0

Вашего путь к файлу JavaScript должен быть URI относительно вашего HTML-файл, а не путь файловой системы. Предполагая, что ваши файлы находятся в каталоге C: \ папку тотализаторов, попробуйте

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

Кроме того, использование сети/средства разработки вашего браузера, чтобы увидеть, если ваша библиотека JQuery в процессе загрузки или нет.

+0

Я не использовал jquery правильно. Я должен использовать .evaluate. Я ранее тестировал это, но забыл привести его в описание. Я отредактировал его. Спасибо. –

Смежные вопросы