使用nightwatch和selenium,在一个系统测试中,我试着拖放,这是用Knockout-draggable完成的。当手动使用它时,它可以100%工作。这是来自系统测试的代码,应该是拖放一个可拖动的框:
this.moveToElement('@box', 0, 0);
c.mouseButtonDown(0);
this.moveToElement('@box2', 0, 40);
c.mouseButtonUp(0);
this
是页面(其中有XPath元素),而c
是客户端。
但这似乎甚至不能移动第二个框下的框(这是大约40像素高)。是的,我已经尝试了不同的数字,它甚至不能拖动框任何地方。在Firefox中完成。
是的,@box
和@box2
都是工作的xpath。我已经在一段时间内使用它们进行了一系列其他测试。
4条答案
按热度按时间x6h2sr281#
在
c.mouseButtonDown(0);
和this.moveToElement('@box2', 0, 40);
之间暂停一下怎么样4ioopgfo2#
伙计们,你必须试试这个,它在Chrome,Firefox和IE中都能很好地工作。但只有当要移动的元素和要移动到的元素都支持HTML5拖放功能时,它才能工作。
你必须用npm安装“html-dnd”,这是一个链接-
https://www.npmjs.com/package/html-dnd
安装后,您只需执行以下命令:
browser.execute(dragAndDrop, ['#draggable', '#droppable']);
例如:
browser.execute(dragAndDrop,['#elemendId1', '#elemendId2']).pause(2000);
个希望这对您的测试用例能很好地工作。
knpiaxh13#
我采用了@光的方法,它对我很有效:
fnatzsnv4#
我为此问题创建了一个customCommand。它可以正常工作