Selenium IDE sendKey到input元素不会触发事件处理程序

时间:2014-03-05 15:00:21

标签: javascript jquery html selenium

我正在使用selenium IDE,为基于JQuery的应用程序编写测试。我以前的努力使用sendKey和类型。在该站点中,ul下拉列表中有一个输入框。

  • 当用户在下拉列表中键入数字时。
  • 点击它外面。
  • 键入的值会反映到网站上的其他标签。

虽然使用硒:

  • 焦点
  • 的SendKeys
  • 点击

不会在JS中触发更新标签的任何事件......

我也尝试使用runscript $('body').click();触发某些事件,但没有成功。

<div class="lblButton optType">
    <label id="lSystem" data-rule="{'id':'b10','value':10}">10</label>
    <span class="arrow"></span>
    <ul class="widget">
        <li class="option tagV10" data-rule="{'id':'b10','value':10}">10</li>
        <li class="option tagV20" data-rule="{'id':'b20','value':20}">20</li>
        <li class="option tagV30" data-rule="{'id':'b30','value':30}">30</li>
    </ul>
    <input class="lblButtonIn" type="number" style="background-color: transparent;">123</input>
</div>

如何正确模拟更改输入值并在输入/下拉列表外单击? (我不能分享完整的js,但下面是我认为重要的部分:)

var parent = field.parent(), label = parent.find('>label');
field.bind( 'blur', function( e ) {
setTimeout( function() {
if ( field.hasClass('invalid') ) {
field.get(0).value = label.text();
field.removeClass('invalid');
}
else {
var v = field.get(0).value, r = '{\'id\':\'b'+v+'\',\'value\':'+v+'}';
label.html( field.get(0).value ).attr('data-rule',r);
}
updateGt(), $('body').click();
}, 20); 

0 个答案:

没有答案