【问题标题】:Selecting drop down option using CasperJS使用 CasperJS 选择下拉选项
【发布时间】:2016-02-24 20:18:19
【问题描述】:

当我尝试使用 CasperJS 选择一个选项时卡住了,尝试了许多 casperJS 函数,但到目前为止它们都没有成功,也许有一种简单的方法可以对这种表单进行选择?

<form class="_messageBoxForm" id="messageBoxForm" name="messageBoxForm" method="post" action="" data-source="">
    <select class="_time _hours">        
         <option value="1">1</option>          
         <option value="2">2</option>       
         <option value="3">3</option>       
         <option value="4">4</option>         
         <option value="5">5</option>          
         <option value="6" selected="selected">6</option>                       
    </select>
</form>

我已经尝试过的事情:

this.evaluate(function() { 
$('._time._hours').val('5').change(); 
}); 

this.evaluate(function() { document.querySelector('select._time._hours').selectedIndex = 2; 
return true; 
}); 

this.fillSelectors('form#messageBoxForm', { 
'select[class="_time _hours"]': '5' 
}, true);

【问题讨论】:

    标签: javascript html-select casperjs


    【解决方案1】:

    试试下面的解决方案,它可能对你有帮助

    casper.then(function(){
        this.click("._time._hours");
        this.evaluate(function() {
            var form = document.querySelector('.form-control');
            form.selectedIndex = 2;
            $(form).change();
        });
    });
    

    【讨论】:

    • 如果上述解决方案对您有用,请投票
    • 必须更改代码中的一行才能使其正常工作:$(form).val(2).change();谢谢;)
    • 我使用了 'casper.click("#commencement-date"); this.evaluate(function(){ var form = document.querySelector('#commencement-date'); form.selectedIndex = 2; $(form).change(); });'并且工作得很好,所以谢谢+1
    【解决方案2】:

    Prateek,您的解决方案对我有用,但我有一个 ID 可以使用。

    this.evaluate(function(){
        var form = document.querySelector('#searchSelectId');
        form.selectedIndex = 3;
        $(form).change();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 2011-06-19
      相关资源
      最近更新 更多