使用CasperJS将值设置为索引下拉列表

时间:2013-11-25 06:14:21

标签: javascript phantomjs html-select casperjs

我的html代码如下:

<select id="mairieActe" class="formengine-select" name="mairieActe">
    <option selected="selected" value="">Choisir une mairie</option>
    <option value="Paris 1er">Paris 1er</option>
    <option value="Paris 2ème">Paris 2ème</option>
    <option value="Paris 3ème">Paris 3ème</option>
    <option value="Paris 4ème">Paris 4ème</option>
    <option value="Paris 5ème">Paris 5ème</option>
    <option value="Paris 6ème">Paris 6ème</option>
    <option value="Paris 7ème">Paris 7ème</option>
    <option value="Paris 8ème">Paris 8ème</option>
    <option value="Paris 9ème">Paris 9ème</option>
    <option value="Paris 10ème">Paris 10ème</option>
    <option value="Paris 11ème">Paris 11ème</option>
    <option value="Paris 12ème">Paris 12ème</option>
    <option value="Paris 13ème">Paris 13ème</option>
    <option value="Paris 14ème">Paris 14ème</option>
    <option value="Paris 15ème">Paris 15ème</option>
    <option value="Paris 16ème">Paris 16ème</option>
    <option value="Paris 17ème">Paris 17ème</option>
    <option value="Paris 18ème">Paris 18ème</option>
    <option value="Paris 19ème">Paris 19ème</option>
    <option value="Paris 20ème">Paris 20ème</option>
    <option value="UNKNOWN">Ne sait pas</option>
</select>

我想通过index.ex设置自动值。我有index = 3,它会在下拉值上显示Paris 3ème

我正在尝试使用下面的代码,但它不起作用,它仍会在下拉列表中显示Choisir une mairie

this.fillSelectors('form#naissancelieuEtDate', {
    'select[name="mairieActe"]': index
});this.capture('result.png');

1 个答案:

答案 0 :(得分:0)

您可以尝试使用casper.evaluate()函数:

casper.then(function(){
    casper.evaluate(function() {
        var x_unselect = document.getElementById("mairieActe").children[1]; //making "Choisir une mairie" option unselected
        x_unselect.setAttribute("selected", false);

        var y_select = document.getElementById("mairieActe").children[4]; //select option you're needed
        y_select.setAttribute("selected", "selected");
    });
});
casper.then(function() {
    this.captureSelector("result.png", "html");
});