如何使用没有表单标签的CasperJS填写表单

Ale*_*uss 8 javascript html-input casperjs

我是CasperJS的新手,我在登录这个网站时遇到了问题http://weibo.com/login.php

这是我尝试过的

this.fill('form#contact-form', {
    'username':    'test@test.com',
    'password':    'anypassword',

}, true);
Run Code Online (Sandbox Code Playgroud)

我不能用它,因为它没有形式.

所以我尝试使用sendKeys的另一种方法.

this.sendKeys('.W_input ', 'tinkerbell@gmail.com');
Run Code Online (Sandbox Code Playgroud)

现在我的问题是输入文本中没有ID,只有CLASS,用户名和密码都有相同的CLASS.如何只使用该类输入该文本框?或者是否可以使用XPath使用sendKeys?

hac*_*sid 8

casper支持CSS3选择器(tuts +有一个你应该记住的前30名的合适的纲要)所以你可以这样做:

this.sendKeys('input[name=username]', 'tinkerbell@gmail.com');


小智 5

我使用querySelector函数设置用户名和密码成功:

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