selenium中用fireEvent解决select和type无法触发onXXX事件的问题
2009-11-16 13:04
656 查看
今天在做selenium+Junit测试的时候,发现selenium的type和select函数虽然能模拟输入和选择列表的功能,却不能触发相应控件上的onXXX 事件,比如onblur、onchange等,使测试无法正确进行。经过一番谷歌和思索,得出了以下解决办法:
首先保证你的测试类继承SeleneseTestCase而不是TestCase(前者是后者的子类),这是为了在测试时使用SeleneseTestCase的pause函数。
以select触发onchange事件为例:两个下拉列表A和B,B要根据A的选项列出不同的选项,如果只用selenium的select函数,是不能解决的。
第二行是必须的,我做过实验,如果没有这一行onchange事件无法触发。
第三行使程序暂停1秒,为的是给JavaScript运行的时间,如果没有这一行,错误可想而知了。
首先保证你的测试类继承SeleneseTestCase而不是TestCase(前者是后者的子类),这是为了在测试时使用SeleneseTestCase的pause函数。
以select触发onchange事件为例:两个下拉列表A和B,B要根据A的选项列出不同的选项,如果只用selenium的select函数,是不能解决的。
selenium.select("A", "label=Boy"); selenium.fireEvent("A","blur"); selenium.fireEvent("A","change"); pause(1000); selecium.select("B","label=Football");
第二行是必须的,我做过实验,如果没有这一行onchange事件无法触发。
第三行使程序暂停1秒,为的是给JavaScript运行的时间,如果没有这一行,错误可想而知了。
相关文章推荐
- 解决动态生成input无法触发click事件的问题
- easyui datebox控件点击今天按钮不触发onSelect事件的解决方法
- 解决 html input file onchang 事件触发一次后失效问题
- 解决WinForm 程序中由于拖拽导致MouseUp事件无法触发的问题
- 解决jQuery ajax动态新增节点无法触发点击事件的问题
- 解决绝对定位层(position:absolute;)上无法触发滚动事件的问题
- jquery live方法,解决jquery动态添加按钮无法触发点击事件的问题
- Opera浏览器在输入法开启情况下无法触发键盘事件的解决办法——oninput事件
- 解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题
- 解决js中新增加的标签无法触发事件的问题
- 解决firefox在未触发事件前无法使用window.event的问题
- 解决IE 下div与img重叠无法触发鼠标事件的问题
- 解决JQuery中input的change(onchange)无法触发的问题
- 解决TextBox中, JS方法(DatePicker)改变Text内容后, 无法触发OnTextChanged事件的问题
- 解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
- IE9浏览器onpropertychange和oninput事件对delete键和剪切不触发问题解决方法
- 解决iOS下无法触发focus事件的问题
- 解决Android按住空白区域,导致点击其他按钮无法触发点击事件的问题
- 解决jQuery ajax动态新增节点无法触发点击事件的问题
- 解决jquery中动态新增的元素节点无法触发事件问题的两种方法