Jus*_*dro 19 javascript firefox javascript-events mousewheel dispatchevent
我正在尝试使用WebDriver进行自动化测试,但它目前无法模拟鼠标滚轮事件.作为一种解决方法,我试图用JavaScript来解雇这些事件.我现在正在直接在HTML页面上进行实验,而不是在WebDriver框架内.
我特意尝试在滚动div元素上触发鼠标滚轮事件.
到目前为止,我已经能够使用Chrome和IE9做到这一点,但我似乎无法在Firefox(5.x)中使用任何东西.
我正在使用以下跨浏览器代码来检测何时触发鼠标滚轮事件,这是我从网上抓取的.当我在我创建的滚动div(id ='view')中滚动鼠标滚轮时,此代码能够在所有浏览器中拾取事件.
<script type="text/javascript">
function wheel(event) {
var delta = 0;
if (!event) {
event = view.event;
}
if (event.wheelDelta) {
delta = event.wheelDelta / 120;
}
else if (event.detail) {
delta = -event.detail / 3;
}
alert(delta);
}
var view = document.getElementById('view');
if (view.addEventListener) {
view.addEventListener('DOMMouseScroll', wheel, false);
}
view.onmousewheel = wheel;
</script>
Run Code Online (Sandbox Code Playgroud)
调用时,下面的函数可以在Chrome和IE9中触发鼠标滚轮事件,并在上述处理程序中获取预期行为.
function ChromeWheel () {
var evt = document.createEvent("MouseEvents");
evt.initEvent('mousewheel', true, true);
evt.wheelDelta = 120;
view.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)
当然,它不适用于Firefox.我发现现有的文档太稀疏而且不知道FF如何处理这个问题.任何人都可以向我展示在Firefox中使用滚轮三角形(放置在FF预期的位置)中发射鼠标滚轮事件的最低限度,这样我的处理程序就可以将它拿起来?
Nic*_*lay 14
好,
init...()
鼠标事件的方法initMouseEvent()
.(规格)这是一个固定的测试用例,适用于Firefox:http://jsfiddle.net/6nnMV/
可能对你没用,但可能对其他想要模拟事件的人感兴趣,这里是mozilla中的(特权)单元测试如何模拟"真实"事件:http://hg.mozilla.org/mozilla-central/annotate/ a666b4f809f0 /测试/ mochitest /测试/ SimpleTest的/ EventUtils.js#L248
归档时间: |
|
查看次数: |
24496 次 |
最近记录: |