首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nightwatch.js:拖放

Nightwatch.js:拖放
EN

Stack Overflow用户
提问于 2016-05-13 23:26:34
回答 3查看 4.3K关注 0票数 5

我正在尝试使用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中描述的方法。

代码语言:javascript
复制
.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,也没什么区别--两者的行为完全相同。

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2018-02-16 16:45:48

伙计们,你一定要试一试,它在Chrome,Firefox和IE上都运行得很好。

你只需要使用npm安装"html-dnd“,这是一个链接:https://www.npmjs.com/package/html-dnd

安装后,您只需执行以下命令

browser.execute(dragAndDrop, ['#draggable', '#droppable']);

例如:

代码语言:javascript
复制
var dragAndDrop = require('html-dnd').codeForSelectors;
browser.execute(dragAndDrop,['#elemendId1','#elemendId2']).pause(2000);

希望这对你的测试用例很有效。

票数 3
EN

Stack Overflow用户

发布于 2016-06-10 23:08:01

当您单击元素时,表达式就会发生变化,因此测试会“忘记”它们应该单击的内容。

建议使用操作构建方法,如下所示:

http://elementalselenium.com/tips/39-drag-and-drop

票数 1
EN

Stack Overflow用户

发布于 2021-02-14 18:42:22

目前在Nightwatch版本1.5.1中,我可以通过以下示例进行拖放。

示例:

代码语言:javascript
复制
"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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37213870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档