@Talik0507
Работаю, Живу

Как используя Selenide перетащить один элемент на другой?

Использую Selenide
Есть веб приложение, созданное с использованием angular и его компонентов.
есть 2 елемента. Нужно один перетащить на второй.

Пробовал так

$("div.content-sidebar li:nth-of-type(3) div").dragAndDropTo("div.fieldSelection-area:nth-of-type(1)");

Но не работает. На форме видно, что нужный элемент подсветился, но далее ничего не происходит. По истечении какого-то времени начинается выполняться сл строчка, но элемент так и не переместился.

Кто сталкивался? как решить? или какие варианты решения?

PS. Пробовал использовать Selenium - эффект тот же
  • Вопрос задан
  • 625 просмотров
Решения вопроса 1
@Talik0507 Автор вопроса
Работаю, Живу
Нашел ответ.

Спасибо Florent B.
https://stackoverflow.com/questions/33390054/selen...

Только пришлось немного изменить код
`this.types.append(` заменить на `this.types.push(`

в общем виде все получилось так (код на Java):
String JS_DRAG_AND_DROP =
"var src=arguments[0],tgt=arguments[1];var dataTransfer={dropEff" +
"ect:'',effectAllowed:'all',files:[],items:{},types:[],setData:f" +
"unction(format,data){this.items[format]=data;this.types.push(" +
"format);},getData:function(format){return this.items[format];}," +
"clearData:function(format){}};var emit=function(event,target){v" +
"ar evt=document.createEvent('Event');evt.initEvent(event,true,f" +
"alse);evt.dataTransfer=dataTransfer;target.dispatchEvent(evt);}" +
";emit('dragstart',src);emit('dragenter',tgt);emit('dragover',tg" +
"t);emit('drop',tgt);emit('dragend',src);";
.......
executeJavaScript(JS_DRAG_AND_DROP, elem_drag, elem_drop);
.......
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы