测试点击输入字段和结果文本选择

Testing click in input field with resulting text selection

本文关键字:结果 文本 选择 字段 输入 测试点      更新时间:2023-09-26

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

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

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

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

紧接着抓住选择的开始和结束,如果开始在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'>

使用capybara,您可以使用page.evaluate_script执行一些javascript并返回结果。类似的东西

page.eevaluate_script("[$('.my_div input'([0].startSelection,$('.my _div input'([0].endSelection]"(

应该返回一个包含开始和结束选择位置的数组,然后可以对其进行验证。