如何在Selenium WebDriver中使用Ctrl +鼠标滚轮实现放大/缩小



Selenium WebDriver的大多数行为仅实现按键或滚动滚动条。但是,我们如何实现"按下+滚动鼠标滚轮"的动作?

此外,我的目标不仅仅是放大/缩小,而且还使用鼠标滚轮动作。虽然有些问题已经通过使用"CTRL + ADD"解决了放大/缩小问题,但我的问题希望通过鼠标滚作来解决。

使用 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)

在配备滚轮的鼠标上旋转滚轮。

参数:轮子

  • 移动鼠标滚轮的"凹口"数量
  • 负值表示向上/远离用户
  • 正值表示向下/朝向用户移动。

有点晚了...

我正在通过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);

最新更新