量角器拖动和下降在 Mac 上不起作用



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

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

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

我也试过这个:

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

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

为此:

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

试试这个:

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

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

您很可能在一长串人中,他们对使用html5实现的拖放功能有问题。这一直是使用Selenium网络驱动程序解决的问题领域。

请注意,该问题可能是由于为ChromeDriver提交的一个古老的错误造成的。

该错误有很多讨论,可能有助于理解真正的问题,并且在下面的评论中也提到了很多解决方案 - 但是这个问题还没有万无一失或 100% 有效的解决方案。

这个错误已经在量角器github问题中多次提到,比如这里,这里,这里,这里和这里,以及Selenium GitHub的存档问题。

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

另外,请注意,相同的问题已在此处,此处,此处,此处多次发布。

最新更新