为什么sendKeys()在casperJS中无法正常运行

时间:2015-11-11 01:01:03

标签: javascript casperjs html-input form-fields

我正在编写一个自动脚本来登录draftkings.com。我正在使用sendKeys()将我的登录凭据添加到必填字段。 sendKeys()的第一个用途是用户名字段,其ID为“用户名”。这实际上会将我的用户名放入该字段中。第二个用途是密码字段,ID为“密码”。但是,这会将此字段的所需文本放入用户名字段中。我错过了什么吗?

var casper = require('casper').create({
loadImages:false,
verbose: true,
logLevel: 'debug'
});

//set browser user agent
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X)');

//Open URL
casper.start('https://draftkings.com');

casper.then(function() {
    this.clickLabel('Sign-in', 'a');
});

casper.then(function() {
    this.sendKeys('#Username', 'xxxx');
    this.sendKeys('#Password', 'xxxx');
    this.click('a[data-signin-submit="1"]');

});

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

更新

我无法弄清楚为什么sendKeys无法正常工作。我最后只使用this.evaluate()将值输入到document.querySelector()的字段中。

新问题:

我可以在控制台输出中看到正在点击'a[data-signin-submit="1"]'并且正在发送http请求,但它实际上并没有记录我。我正在使用phantomJS 2.0.0所以它不是一个ssl问题,虽然我已经尝试过了。如果我的凭据是捕获将显示。

1 个答案:

答案 0 :(得分:0)

this.click()中提供的输入可能存在问题,请尝试使用

输入xpath
this.click(x('your xpath here'));