提交带有casperjs的表单

时间:2014-06-22 21:10:30

标签: javascript casperjs

我有一个简单的form使用casperjs提交。同样,我有以下版本的代码 -

casper.then(function() {
    // fill the dropdown and click on buy now
    this.fill('form#add-to-cart-form', {
        'options[416]': '2884',
        'productId': '1093'
    }, true);
});

casper.then(function() {
    console.log("Checkout URL: ", this.getCurrentUrl()); // not going correctly
});

这里的问题是程序会记录相同的URL,而如果您打开页面并提交它,则会转到checkout page

有任何疑问是什么?

1 个答案:

答案 0 :(得分:2)

该网站似乎是一个单页面应用程序。提交按钮的页面加载不会被casperjs拾取。您需要手动等待下一页加载。我使用了一个您可以在购物车页面上找到但不在产品页面上找到的选择器:.filled-cart

另一个问题是填充方法没有触发表单提交。您需要手动单击它。此外,我删除了隐藏字段的填充,因为它没有意义。

casper.then(function() {
    // fill the dropdown and click on buy now
    this.fill('form#add-to-cart-form', {
        'options[416]': '2884'
    });
    this.click("button[type=submit]");
});

casper.waitForSelector(".filled-cart");

casper.then(function() {
    console.log("Checkout URL: ", this.getCurrentUrl()); // not going correctly
});