我正在尝试使用Nightwatch.js 0.8.18、Selenium Server2.53.0和Chrome Driver 2.21.2测试拖放操作。
基本上,我采用了https://github.com/RobK/nightwatchjs-drag-n-drop-example/blob/master/spec/drag-and-drop.js - i.e中描述的方法。
.moveToElement('some-xpath-expression', 10, 10)
.pause(100)
.mouseButtonDown(0)
.pause(100)
.moveToElement('other-xpath-expression', 30, 30)
.pause(100)
.mouseButtonUp(0)光标移动到要拖动的元素(通过鼠标所在图标的:hover样式可以察觉到),但随后什么也没有发生。在我看来,mouseButtonDown()操作没有任何效果。(但谁能确定呢?)
如果我使用Firefox而不是Chrome,也没什么区别--两者的行为完全相同。
有什么想法吗?
发布于 2018-02-16 16:45:48
伙计们,你一定要试一试,它在Chrome,Firefox和IE上都运行得很好。
你只需要使用npm安装"html-dnd“,这是一个链接:https://www.npmjs.com/package/html-dnd
安装后,您只需执行以下命令
browser.execute(dragAndDrop, ['#draggable', '#droppable']);
例如:
var dragAndDrop = require('html-dnd').codeForSelectors;
browser.execute(dragAndDrop,['#elemendId1','#elemendId2']).pause(2000);希望这对你的测试用例很有效。
发布于 2016-06-10 23:08:01
当您单击元素时,表达式就会发生变化,因此测试会“忘记”它们应该单击的内容。
建议使用操作构建方法,如下所示:
http://elementalselenium.com/tips/39-drag-and-drop
发布于 2021-02-14 18:42:22
目前在Nightwatch版本1.5.1中,我可以通过以下示例进行拖放。
示例:
"Step 1: Drag and Drop": function (browser) {
browser.moveToElement('yourLocator', '#startingElement', 0, 0);
browser.mouseButtonDown(0);
browser.moveToElement('yourLocator', '#endingElement', 0, 0);
browser.mouseButtonUp(0);
}https://stackoverflow.com/questions/37213870
复制相似问题