我才刚刚开始使用 Selenium,所以我还在纠结所有的移动部件。我已经启动并运行了我的第一个测试套件,但我一生都无法让 jQuery 事件侦听器在 IE 中触发。
这在动态 AJAX 下拉列表中尤其成问题,例如$('#country').live('change',showStates)
select -> id=country | label=United States
selenium 驱动程序触发事件以响应所有其他浏览器的测试脚本,但我没有尝试过导致或强制change
触发事件。我已经尝试使用我可以在 SO 上找到的所有方法,包括:
- 根据如何在 selenium 中触发 JS 事件保持窗口焦点?
- 尝试不同的方法来调用触发器:
runScript -> "$('#country').change()
每个Selenium IE 更改事件未触发 runScript -> "$('#country').trigger('change')
fireEvent -> id=country | change
每个onchange 事件不会在 selenium 类型命令上触发
这些命令都不会在 IE9、8(模拟)或 7(模拟)中触发事件。FWIW 目前尚不清楚这些是否真的导致事件在其他浏览器中触发,因为其他浏览器在change
没有额外调用的情况下触发事件。我在 Windows 7 上运行独立的 selenium jar 2.33。
如何使用 selenium 在 IE 中触发更改事件?