2013-10-18 18 views
8

Tôi mới đến CasperJS và tôi đang gặp vấn đề trong việc đăng nhập vào trang web này http://weibo.com/login.phpLàm thế nào để điền vào mẫu sử dụng CasperJS mà không cần thẻ form

đây là những gì tôi đã cố gắng

this.fill('form#contact-form', { 
    'username': '[email protected]', 
    'password': 'anypassword', 

}, true); 

tôi không thể sử dụng nó vì nó không có dạng.

vì vậy tôi đã thử một phương pháp khác bằng cách sử dụng sendKeys.

this.sendKeys('.W_input ', '[email protected]'); 

Bây giờ vấn đề của tôi ở đây là văn bản đầu vào không có ID trong đó, chỉ một CLASS và cả tên người dùng và mật khẩu đều có cùng một CLASS trong đó. làm thế nào tôi có thể gõ vào hộp văn bản mà chỉ sử dụng lớp đó? hoặc có thể sử dụng sendKeys bằng XPath không?

+0

'sendKeys' sử dụng sự kiện bàn phím để nhập. Điều đó có thể gây ra một số vấn đề lạ lùng ... – Sayakiss

Trả lời

5

tôi sử dụng querySelector chức năng để thiết lập tên đăng nhập và mật khẩu với thành công:

var casper = require("casper").create(); 
casper.start('http://www.weibo.com', function() { 
    this.evaluate(function(username, password) { 
     document.querySelector('input[node-type="username"]').value = username; 
     document.querySelector('input[node-type="password"]').value = password; 
     document.querySelector('.W_btn_g:eq(1)').click(); 
    }, 'your_username', 'your_password'); 

}); 

casper.then(function() { 
    this.wait(50000, function() { 
     this.echo("50s"); 
    }); 

}); 

casper.then(function() { 
    this.capture('weibo.png'); 
}); 

casper.run(); 
+0

Giải thích sẽ tốt đẹp! – gsamaras

-1

Đây là casper đơn giản js script để điền vào mẫu đăng nhập giả sử nó đã đề cập id cho mỗi trường

casper.evaluate (chức năng (tên người dùng, mật khẩu) { document.querySelector ('input # user_email'). Value = username;

 document.querySelector('input#user_password').value = password; 
     document.querySelector('input#login-button').click(); 
    }, '[email protected]', 'password'); 
+1

Vui lòng chỉnh sửa câu trả lời của bạn để giải thích cách giải quyết vấn đề này. Các câu trả lời chỉ có mã được khuyến khích, vì chúng không dạy bất cứ điều gì. Ngoài ra, vui lòng thụt lề dòng mã đầu tiên bởi 4 dấu cách để nó được định dạng đúng. Cảm ơn bạn! –

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