2016-05-13 3 views
2

Я пытаюсь проверить операцию перетаскивания, используя Nightwatch.js 0.8.18, Selenium Server 2.53.0 и Chrome Driver 2.21.2.Nightwatch.js: Перетаскивание

В принципе, я беру подход, описанный в https://github.com/RobK/nightwatchjs-drag-n-drop-example/blob/master/spec/drag-and-drop.js - то есть: что-то вроде ...

.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 - поведение точно такое же.

Любые идеи?

+0

какой операционной системой вы используете? Вы можете поделиться html? Код, который вы написали, отлично работает для меня в Windows, но не работает на OSX. – paul

+0

Интересный момент - я использую OS X и до сих пор не потрудился попробовать его в Windows. Попробуем проверить это в ближайшие дни. – BlueM

+0

Это не работает для меня в Windows. 'MouseButtonDown()' не запускает API перетаскивания HTML5. – hon2a

ответ

1

Когда вы нажмете элемент, выражение изменится, и, таким образом, тесты «забывают», что они должны были щелкнуть.

Рекомендуется использовать сборки подход действий, как так:

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

0

Ребята, вы должны попробовать это и она отлично работает в Chrome, Firefox и IE.

Просто вы должны установить «HTML-ДНА», используя НПМ, а также это ссылка - https://www.npmjs.com/package/html-dnd

После установки вы просто должны выполнить эту команду - browser.execute (DragAndDrop, [ '#draggable ',' #droppable ']);

Для примера ->

var dragAndDrop = require("html-dnd"); 
browser.execute(dragAndDrop,['#elemendId1','#elemendId2']).pause(2000); 

Надеется, что это будет работать нормально для тестовых случаев.

+0

К сожалению, это не работает для меня (Selenium 3, ChromeDriver) - команда ничего не делает. Тем не менее, спасибо за ответ. – BlueM

Смежные вопросы