测试单击输入字段并选择结果文本

时间:2015-07-06 15:36:10

标签: javascript ruby-on-rails ruby rspec capybara

我为输入字段实现了以下行为:如果用户点击该字段,它会将整个输入值设置为选择;

$('.my_div input').on('click', function(event){
    this.setSelectionRange(0, this.value.length);
  }
);

现在我不太确定如何测试这种行为。粗略的想法是触发 单击,然后检查字段的选择。但不幸的是,我不知道如何选择当前的输入选择。

欢迎任何有关所描述行为的测试方法的提示!

2 个答案:

答案 0 :(得分:0)

刚刚抓住选择的开始和结束,如果开始是0并且结束是输入长度,那么一切都被选中。

$('.my_div input').on('click', function(event){
    this.setSelectionRange(0, this.value.length);

    var start = event.target.selectionStart;
    var end = event.target.selectionEnd;
    if(start==0 && end==$(this).val().length)
        console.log('everything is selected');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class='my_div'>
  <input type='text'>
  </div>
<input type='text'>

答案 1 :(得分:0)

使用capybara,您可以使用page.evaluate_script执行一些javascript并返回结果。像

这样的东西

page.evaluate_script(“[$('。my_div input')[0] .startSelection,$('。my_div input')[0] .endSelection]”)

应该返回一个带有开始和结束选择位置的数组,然后你可以验证它。