我有一个选择列表,其中使用jQuery将更改事件绑定到元素。像这样:
$("#someId").change(function() {..});
当有人在选择列表中选择新选项时,UI的另一部分将相应更改。现在,当我使用鼠标并单击时,这可以正常工作,但是,当使用Watij编写测试时,我需要触发jQuery更改事件来触发它没有做的事情。
Watij测试将正确选择所需的选项,但实际事件不会被触发。我试过调用fireevent("change");
和fireevent("onchange");
无济于事。我也尝试了ie.sendKeys("{ENTER}");
和ie.sendKeys("{TAB}");
,但似乎也没有做到这一点。
有什么想法吗?
答案 0 :(得分:1)
到目前为止,我发现的唯一解决方案是回滚使用中的jQuery版本。我目前正在使用版本1.4.1(关于选择框上更改事件的可测试性的违规版本),并且在回到版本1.2.6后,问题就消失了。
答案 1 :(得分:1)
使用$('#someId').trigger('change');
手动触发事件。
请参阅trigger()的文档。
答案 2 :(得分:0)
当使用脚本更改组合/列表值时,不应触发onchange。我不知道Watij是怎么做的,但这是一个例子。
第二件事是Watij正在使用IE(只要维基百科是正确的)并且IE正在使用系统控制代替您的列表或组合,它可能会破坏某些东西。尝试升级到IE8,它可以更好地实现表单组件(例如,10年后选择最终支持选项中的“禁用”属性)
您可能还对正常的应用程序GUI测试应用感兴趣,并在带有webapp的浏览器上使用它们。录制宏并检查屏幕截图。