量角器dragAndDrop在Mac上不起作用

时间:2018-06-23 06:36:37

标签: macos selenium protractor

我正在MAC OS系统上执行量角器代码并使用Chrome。一切正常,但没有拖放事件。

如果我将鼠标的实际位置放在放置目标上,则代码运行良好。但是,如果鼠标的实际位置不在目标位置,则不会执行该操作。 我正在使用的代码为:

browser.actions().dragAndDrop(source,target).perform(); 

我也尝试过这个:

browser.actions().mouseDown(source).mouseMove(target).mouseUp().perform();

3 个答案:

答案 0 :(得分:1)

为此:

browser.actions().dragAndDrop(source,target).perform(); 

尝试:

browser.actions().mouseMove(source).mouseDown().mouseMove(target).mouseUp().perform(); 

请注意,dragAndDrop只是mouseMove + mouseDown + mouseMove + mouseUp

答案 1 :(得分:1)

使用html-dnd NPM模块。

链接:https://www.npmjs.com/package/html-dnd

代码段:

var dragAndDrop = require('html-dnd').code;

var draggable = driver.findElement(By.id('draggable'));

var droppable = driver.findElement(By.id('droppable'));

driver.executeScript(dragAndDrop, draggable, droppable);

答案 2 :(得分:0)

您可能有很多人对使用html5实现的拖放功能有疑问。这是使用Selenium Webdriver时需要解决的问题。

请注意,该问题可能是由于向ChromeDriver提交了bug的旧信息。

该bug进行了大量讨论,可能有助于理解实际问题,并且在下面的评论中还提到了很多解决方案-但是,还没有可靠的证明或100%可行的解决方案来解决此问题。

这个错误在herehereherehere等量角器github问题中以及在已归档问题{ {3}}。

您可以尝试的解决方案之一是创建此here的辅助方法。但是,这不是一个有保证的解决方案,但是我建议您尝试一下。针对量角器here提到的原始问题还提到了许多其他解决方案,您可以尝试。您也可以尝试使用此帮助程序here

此外,请注意,同一问题已多次发布methodhereherehere。在添加新问题之前,请先查看已发布的问题。