一尘不染

如何在JavaScript中双击鼠标?

selenium

我需要一个JavaScript代码来单独使鼠标双击。我将在Java代码中使用它。这是一个用于测试目的的selenium项目,但是没有任何方法可以使鼠标双击selenium,因此我想使用javaScript在我的java代码中执行此操作。你有什么主意吗?

他们说我应该使用JavaScript双击鼠标,但是怎么做?


阅读 378

收藏
2020-06-26

共1个答案

一尘不染

为了使 Mouse Double Click 您可以编写脚本并将其传递给executeScript()方法,如下所示:

  • 剧本:

    String jsDoubleClick =
    

    “var target = arguments[0]; ” +
    “var offsetX = arguments[1]; ” +
    “var offsetY = arguments[2]; ” +
    “var rect = target.getBoundingClientRect(); ” +
    “var cx = rect.left + (offsetX || (rect.width / 2)); ” +
    “var cy = rect.top + (offsetY || (rect.height / 2)); ” +
    ” ” +
    “emit(‘mousedown’, {clientX: cx, clientY: cy, buttons: 1}); ” +
    “emit(‘mouseup’, {clientX: cx, clientY: cy}); ” +
    “emit(‘mousedown’, {clientX: cx, clientY: cy, buttons: 1}); ” +
    “emit(‘mouseup’, {clientX: cx, clientY: cy}); ” +
    “emit(‘click’, {clientX: cx, clientY: cy, detail: 2}); ” +
    ” ” +
    “function emit(name, init) { ” +
    “target.dispatchEvent(new MouseEvent(name, init)); ” +
    “} ” ;

  • executeScript()从中调用脚本@Test

    new Actions(driver).moveToElement(myElem, posX, posY).perform();
    

    ((JavascriptExecutor)driver).executeScript(jsDoubleClick, myElem, posX, posY);

2020-06-26