单击CasperJS按钮但没有重定向

时间:2016-03-31 19:47:57

标签: javascript casperjs

var casper = require('casper').create({
  verbose: true,
  logLevel: 'error',
  pageSettings: {
    userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36'
  }
});
var x = require("casper").selectXPath;

casper.start("https://kit.kijiji.ca/Index.aspx");

casper.then(function() {
  this.sendKeys('input[name="login_username"]', 'example@example.com');
  this.sendKeys('input[name="login_password"]', 'password');
});

casper.thenClick('button', function() {
  this.echo("Button clicked.");
});

casper.wait(500, function() {
  casper.click(x("//input[@value='Login / Ouvrir une session']"));
});

casper.wait(1000, function() {
  this.echo(this.getTitle());
  this.capture('example.png');
  casper.exit();
});

casper.run();

您好,我在网上搜索过,无法找到问题的解决方案,所以我决定在这里发帖。

我正在尝试自动登录此网站并成功填写输入字段并单击按钮,但凭据正确时没有任何反应。

虽然当我输入虚假凭据时,我可以从casperjs捕获中看到该按钮被点击,因为该页面显示“无效的用户名/密码”。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的登录部分位于包含帖子操作的表单下。您可以尝试提交表单而不是单击登录按钮。我也遇到了这个问题,并通过这种方式得到解决方案:

    this.fill('form#formname', {
        login_username: 'example@example.com',
        login_password: 'password',
    }, false);

    this.thenEvaluate(function () {
        document.querySelector('form#formname').submit();
    });
希望你能解决问题。请正确填写表格名称。