2012-11-06 14 views
7
casper.then(function(){ 
phone_number = '7wqeqwe6'; 
phone_password = 'Teqweqweqw34'; 

}); 



casper.thenEvaluate(function(phone,password) { 

document.querySelector('input#myTMobile-phone').setAttribute('value',phone); 
document.querySelector('input#myTMobile-password').setAttribute('value',password); 

// document.querySelector('form').submit(); 
}, { 

phone : phone_number, 
password : phone_password 

}); 

questo mi buttacasperjs passaggio params per valutare fallisce

string(307) "[37;41;1mFAIL[0m ReferenceError: Can't find variable: phone_number

C'è un modo per passare params per valutare metodo?

risposta

20

provare qualcosa di simile:

var phone_number = '7wqeqwe6', 
    phone_password = 'Teqweqweqw34'; 

casper.start('http://…'); 

casper.thenEvaluate(function(phone, password) { 
    document.querySelector('input#myTMobile-phone').setAttribute('value', phone); 
    document.querySelector('input#myTMobile-password').setAttribute('value', password); 
    // document.querySelector('form').submit(); 
}, { 
    phone: phone_number, 
    password: phone_password 
}); 

Note:

  1. un luogo fresco forme link on javascript scoping
  2. di riempimento? c'è un API for that
1

Non so cosa c'è di sbagliato nel codice. Dai un'occhiata al CasperJS API:

valuta un'espressione nel contesto di pagina a distanza, un po 'come quello che PhantomJS' di pagina Web # valutano fa, ma può anche gestire gli argomenti passati se si definisce il loro contesto:

Esempio :

casper.evaluate(function(username, password) { 
    document.querySelector('#username').value = username; 
    document.querySelector('#password').value = password; 
    document.querySelector('#submit').click(); 
}, { 
    username: 'sheldon.cooper', 
    password: 'b4z1ng4' 
}); 
7

Le altre risposte sono 1.0. Il metodo preferito è quello di passare lungo gli argomenti a linea

Esempio

casper.evaluate(function(username, password) { 
    document.querySelector('#username').value = username; 
    document.querySelector('#password').value = password; 
    document.querySelector('#submit').click(); 
}, 'sheldon.cooper', 'b4z1ng4'); 

http://docs.casperjs.org/en/latest/modules/casper.html#evaluate

Problemi correlati