casperjs传递params评估失败

nar*_*rek 10 casperjs

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

});
Run Code Online (Sandbox Code Playgroud)

这引起了我的兴趣

string(307)"[37; 41; 1mFAIL [0m ReferenceError:找不到变量:phone_number

有没有办法通过params来评估方法?

NiK*_*iKo 22

尝试这样的事情:

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
});
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 关于javascript范围的一个很酷的链接
  2. 填写表格?有一个API


小智 10

其他答案是1.0之前的.首选方法是在行中传递参数

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

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