В нескольких темах здесь есть обходной путь для перетаскивания селена со страницами, которые используют HTML5 для перетаскивания. Этот обходной путь включает использование javascript для имитации перетаскивания, например Невозможно выполнить перетаскивание HTML5 с использованием javascript для теста Selenium WebDriver и https://gist.github.com/rcorreia/2362544. Это решение хорошо работает на этой странице, http://the-internet.herokuapp.com/drag_and_drop.
Общий подход заключается в чтении файла javascript здесь (https://gist.github.com/rcorreia/2362544#file -drag_and_drop_helper- js) в строку, называемую ниже «jsfile».
затем в селене (с java) передайте селекторы css для источника и места назначения, где # column-a - это идентификатор источника, а # column-b - это цель.
((JavascriptExecutor) driver).executeScript(jsfile +"$('#column-a').simulateDragDrop({ dropTarget: '#column-b'});");
На этой странице работает как чемпион.
Однако подобный подход не работает на этой странице, https://crossbrowsertesting.github.io/drag-and-drop.html. Ничего не происходит, когда я запускаю
((JavascriptExecutor) driver).executeScript(jsfile +"$('#draggable').simulateDragDrop({ dropTarget: '#droppable'});");
У меня есть страницы, которые ведут себя как эта вторая страница (например, без перетаскивания). В качестве первого шага в понимании этого я хотел бы получить представление о том, почему этот подход не работает в последнем случае здесь.