CasperJS没有提交$ _POST数组

时间:2014-01-24 23:48:37

标签: casperjs concrete5

我有一个包含隐藏字段的表单;

<input name="qsID" type="hidden" value="1368113958" />

这是Concrete5添加的隐藏字段。

当提交表单时,隐藏字段不存在,Concrete5(PHP)无法看到隐藏字段,因此可能CasperJS没有发送隐藏字段。

为什么会这样?

更新

使用var_dump我可以看到整个$_POST数组为空

更新2

似乎这一段代码是正确发布和失败的表单之间的区别;

casper.waitForSelector("#Question33",
    function success() {
        this.test.assertExists("#Question33");
        this.click("#Question33");
    },
    function fail() {
        this.test.assertExists("#Question33");
});

此代码还会中断表单数据的发布

casper.waitForSelector("form#miniSurveyView576 input[name='Question34']",
    function success() {
        this.test.assertExists("form#miniSurveyView576 input[name='Question34']");
        this.click("form#miniSurveyView576 input[name='Question34']");
    },
    function fail() {
        this.test.assertExists("form#miniSurveyView576 input[name='Question34']");
});

1 个答案:

答案 0 :(得分:0)

我基本上不得不废弃此代码,因为它根本不起作用。

我最终得到的是这样的

casper.test.begin('web site up', 4, function(test) {
    casper.start(url).then(function() {

        this.test.assert(
            this.getCurrentUrl() === url, 'url is the one expected'
        );

        this.test.assertHttpStatus(200, url + ' is up');

        functions.viewPortCapture(casper, viewports[0], "1001");

        test.assertExists(x("//a[normalize-space(text())='ABC']"));

        this.click(x("//a[normalize-space(text())='ABC']"));

        this.waitForUrl(/abc\/$/, function(){
          test.assertExists("input[type='submit']");
        });
    });

    casper.run(function() {
        test.done();
    });
});