2012-11-06 17 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 

}); 

này ném tôicasperjs qua params để đánh giá thất bại

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

Có cách nào để vượt qua params để đánh giá phương pháp?

Trả lời

20

Hãy thử một cái gì đó như thế này:

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 
}); 

Ghi chú:

  1. một mát dạng link on javascript scoping
  2. điền? có một số: API for that
1

Tôi không biết có gì sai với mã của bạn. Có một cái nhìn tại CasperJS API:

toán một biểu thức trong bối cảnh trang từ xa, một chút giống như những gì PhantomJS' WebPage # đánh giá thực hiện, nhưng cũng có thể xử lý các đối số được truyền nếu bạn xác định bối cảnh của họ:

Ví dụ :

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

Các câu trả lời khác là trước 1.0. Cách ưa thích là để vượt qua cùng các đối số trong dòng

Ví dụ

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

Các vấn đề liên quan