Question

I have a form which contains a hidden field;

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

This is a hidden field added by Concrete5.

When submitting the form its like the hidden field does not exist, Concrete5 (PHP) cannot see the hidden field so presumably CasperJS is not sending the hidden field.

Why is this happening?

Update

Using var_dump I can see that the whole $_POST array is empty

Update 2

It seems that this single piece of code is the difference between the form being posted correctly and failing;

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

This code also breaks the posting of form data

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']");
});
Was it helpful?

Solution

I basically had to scrap this code as it did not work at all.

What I ended up with was something like this

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();
    });
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top