2015-10-01 2 views
3

Может быть, кто-то знает, как перетаскивать элементы, которые внедрили html5 drag & drop. Мне нужно это в тесте e2e, используя nightwatchjs. Я пробовал:NightwatchJS как исправить html5 перетащить падение

 browser.useCss() 
     .moveToElement("div.test-dragbtn-row",10,10) 
     .mouseButtonDown(0) 
     .moveToElement('div.test-container-root',50,50) 
     .mouseButtonUp(0).pause(3000); 

В браузере можно увидеть нажимается этот элемент, а второй шаг не работает, к тому же он держит мышь вниз на элемент, пока не вводить физически с помощью мыши в окне браузера.

Возможно, кто-то сделал тест с nightwatchjs для перетаскивания и знает, как это преодолеть?

ответ

0

меня аналогичная проблема решена с помощью этого пакета - https://www.npmjs.com/package/html-dnd

Он имитирует перетаскивание по диспетчерскому ДНУ событий, ни мыши, участвующей. Это не идеально, так как вы можете полагаться на события мыши, чтобы сделать что-то еще, но это сделало трюк для меня.

1

Я создал пользовательскую команду, и она работает в хроме и светлячок

dragAndDrop.js:

module.exports.command = function(source, dest, callback) { 
    var self = this; 

    this.moveToElement(source, 10, 10) 
    .mouseButtonDown(0) 
    .pause(500) 
    .moveToElement(dest, 10, 10) 
    .mouseButtonUp(0); 

    return this; 
}; 
+1

Что происходит, когда элемент имеет меньший размер, чем 10px (2-й и 3-й аргумент)? Я думаю (источник, 0,0) и (dest, 0,0) будет более безопасным. – IceManSpy

+0

Я согласен с тобой - всего лишь пример :) – deividsito

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