Selenium WebDriver的大部分行为仅实现了按键或滚动滚动条。但是,我们如何实现"按+滚动鼠标滚轮"?
的动作更重要的是,我的目标不仅仅是放大/缩小,还使用鼠标滚轮动作。虽然有些问题通过使用" CTRL + ADD"解决了放大/缩小的问题,但是我的问题想通过鼠标滚轮操作来解决。
答案 0 :(得分:0)
使用Robot类的mouseWheel方法。
示例强>:
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Main {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
robot.mouseMove(200, 200);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mouseWheel(-100);
}
}
来自文档:
public void mouseWheel(int wheelAmt)
在装有轮子的鼠标上旋转滚轮。
参数:wheelAmt
- 移动鼠标滚轮的“凹槽”数量
- 负值表示向上移动/离开用户
- 正值表示向下/向用户移动。
答案 1 :(得分:0)
有点晚了......
我正在通过executeScript(...)函数使用一些客户端生成的鼠标滚轮事件。
使用Javascript / selenium-webdriver的示例(该函数不是很完整,它需要在浏览器端加载一些jQuery):
driver.executeScript(function(domElement,count,shiftMod,ctrlMod) {
//Generate Event
var ev = $.Event('mousewheel',{
buttons: 0,
ctrlKey: ctrlMod || false,
altKey: false,
shiftKey: shiftMod || false,
deltaX: count,
deltaY: count,
});
//Trigger the Event
$(domElement).trigger(ev);
return true;
},webElement,count,shiftMod,ctrlMod);