1

我有一个选择列表,其中更改事件已使用jQuery绑定到元素。像这样的东西:

$("#someId").change(function() {..});

当有人在选择列表中选择一个新选项时,UI 的另一部分将相应更改。现在,当我使用鼠标并单击事物时,这可以正常工作,但是,当使用Watij编写我的测试时,我需要触发它没有执行的 jQuery 更改事件。

Watij 测试将正确选择所需的选择选项,但不会触发实际事件。我试过打电话fireevent("change");fireevent("onchange");但无济于事。我也尝试过ie.sendKeys("{ENTER}");ie.sendKeys("{TAB}");但这似乎也没有奏效。

有任何想法吗?

4

3 回答 3

1

用于$('#someId').trigger('change');手动触发事件。

请参阅trigger()的文档。

于 2010-03-09T21:42:46.747 回答
1

到目前为止,我发现的唯一解决方案是回滚正在使用的 jQuery 版本。我目前使用的是 1.4.1 版(关于选择框上更改事件的可测试性的违规版本),在回到 1.2.6 版后,问题就消失了。

于 2010-03-02T06:44:45.627 回答
0

当使用脚本更改组合/列表值时,不应触发 onchange。我不知道 Watij 是如何做到的,但这是一个案例。

第二件事是 Watij 正在使用 IE(只要 wikipedia 是正确的),并且 IE 正在使用系统控件代替您的列表或组合,它也可能会破坏某些东西。尝试升级到 IE8,它对表单组件的实现稍微好一点(例如,选择在 10 年后终于支持选项中的“禁用”属性)

您可能还对普通应用程序 GUI 测试应用程序感兴趣,并在带有 webapp 的浏览器上使用它们。录制宏并检查屏幕截图。

于 2010-03-13T16:06:15.493 回答