2016-05-05 11 views
0

Ich habe das Auswahl-Formular einreichen:CasperJS verliert Auswahlbox vaue nach

<div class="row"> 
    <div class="col-xs-18 form-group"> 
    <label class="text-base" for="Gender">Geschlecht</label> 
    <select id="Gender" class="form-control" data-bind="value: gender, hasFocus: gender.focused, css: { 'has-error': showError(gender) }" name="Gender"> 
     <option value="" selected="selected">Ausw&auml;hlen...</option> 
     <option value="m">M&auml;nnlich</option> 
     <option value="f">Weiblich</option> 
     <option value="u">Keine Angabe</option> 
    </select> 
    <div class="alert alert-error" aria-atomic="true" aria-relevant="text" aria-live="assertive" data-bind="errorMessage: gender, visible: showError(gender)" style="display: none;">Diese Informationen sind erforderlich.</div> 
</div> 

und es auf diese Weise gefüllt:

casper.then(function() { 
    this.evaluate(function(anrede_inside) { 
     document.querySelector('select#Gender').value = anrede_inside; 
    }, anrede); 
}); 

bisher seine Arbeiten groß. aber wenn ich die Seite einreiche bekomme ich eine Fehlermeldung, dass ich den geschlechtswert nicht gefüllt habe und der Wert auf den Standardwert geändert wurde. Ich habe es mit Screenshots überprüft.

besteht, erfolgt hier auf der Seite:

<div class="col-xs-18"> 
    <input id="CredentialsAction" class="btn btn-primary btn-block" type="submit" value="Klick" title="Klick"> 
</div> 

ich es so klicken:

casper.then(function(){ 
    this.click('input[title*="Klick"]'); 
}); 

Ich habe versucht, auch Geschlecht wie das zu wählen:

casper.then(function(){ 
    this.sendKeys('select#Gender', 'w'); 
}); 

dies auch ist Im ersten Moment wird Geschlecht gewählt, bis ich den Submit-Button klicke. irgendwelche Ideen, was ich falsch mache? oder irgendwelche Ideen auf welchen anderen Wegen ich das Formular auswählen könnte?

Antwort

0

ok, ich habe jede Fill-Methode ausprobiert. und finaly fixiert es mit:

casper.then(function(){ 
this.fillSelectors('form#formID', { 
'select[id=Gender]': 'm', //variable for gender 
}, true); 
}); 

das einzige Problem ist, ich eine Warnung im Debug-Modus erhalten:

[warning] [remote] unable to submit form 

aber kein Problem.

1

Können Sie das unten versuchen? Ich glaube, dass dies Ihr Problem lösen wird.

casper.then(function(){ 
    //select value "u" - Keine Angabe 
    this.evaluate(function(selectValue){ 
     document.querySelector('select[id=Gender]').value = selectValue; 
     return true; 
    }, "u"); //set value "u" 
    this.capture('capture.png'); //see this image to confirm change 
}); 
casper.then(function() { 
    this.click('#CredentialsAction'); //click on input element by id 
}); 

Viel Glück !!!

+0

thx .. aber hmm .. nein, es doenst: - (... seine nealry das gleiche, als meine casper.then (function() { this.evaluate (function (anrede_inside) { document.querySelector ('wählen #Gender '). Value = anrede_inside; }, anrede); }); aber du hast eine "return true" hinzugefügt ... ich habe immer noch das selbe Problem – swapfile