如何在Selenium WebDriver

时间:2015-04-24 02:52:29

标签: selenium-webdriver

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

的动作

更重要的是,我的目标不仅仅是放大/缩小,还使用鼠标滚轮动作。虽然有些问题通过使用" CTRL + ADD"解决了放大/缩小的问题,但是我的问题想通过鼠标滚轮操作来解决。

2 个答案:

答案 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);