我正在MAC OS系统上执行量角器代码并使用Chrome。一切正常,但没有拖放事件。
如果我将鼠标的实际位置放在放置目标上,则代码运行良好。但是,如果鼠标的实际位置不在目标位置,则不会执行该操作。 我正在使用的代码为:
browser.actions().dragAndDrop(source,target).perform();
我也尝试过这个:
browser.actions().mouseDown(source).mouseMove(target).mouseUp().perform();
答案 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%可行的解决方案来解决此问题。
这个错误在here,here,here和here等量角器github问题中以及在已归档问题{ {3}}。
您可以尝试的解决方案之一是创建此here的辅助方法。但是,这不是一个有保证的解决方案,但是我建议您尝试一下。针对量角器here提到的原始问题还提到了许多其他解决方案,您可以尝试。您也可以尝试使用此帮助程序here。