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']");
});
Était-ce utile?

La 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();
    });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top