Действия перетаскивания пройдены, но действия не происходят в Selenium - PullRequest
0 голосов
/ 18 октября 2019

Selenium 3.141

Браузер Chrome и Firefox


Я пытаюсь перетащить объект перетаскивания между двумя полями в веб-приложении с помощью селена.

Я замечаю, что поле перетаскивания подсвечивается, что подтверждает правильность полей перетаскивания, и я вижу некоторые действия, которые подсвечивают полосу прокрутки, но объект не удаляется.

WebElement source = fromfield.findElement(By.xpath(".//*[contains(@title,'task1')]"));
WebElement tofield = driver.findElement(By.xpath("//*[contains(@data-field-name,'task2')]"));
highlight(source)
highlight(tofield) //both dragdrop fields gets highlighted
Actions maction=new Actions(driver);
maction.dragAndDrop(source, tofield).build().perform();
//tried below alternative way of dragdrop by increasing/decreasing pause duration but no success
maction.clickAndHold(source).pause(2000).moveToElement(tofield).pause(2000).release().build().perform(); 

Ожидаемый результат: DragDrop долженпроисходит между полями

Фактический результат: поля перетаскивания подсвечиваются и действия перетаскивания пропускаются, но объект не сбрасывается.

После ввода из Infern0, попытался использовать приведенный ниже фрагмент кода, но получил исключение.

String js_filepath = "C:/test/drag_and_drop_helper.js";
 String java_script = null;
 String text = null;
 BufferedReader input = new BufferedReader(new FileReader(js_filepath));
 StringBuffer buffer = new StringBuffer();
 while ((text = input.readLine()) != null)
        buffer.append(text + " ");
        java_script = buffer.toString();
 jse.executeScript(java_script+"$('#{objectProperty_c77}').simulateDragDrop({ dropTarget: '#{objectProperty_c76}'});"); 

js ссылка: https://gist.github.com/rcorreia/2362544#file-drag_and_drop_helper-js

Исключение: org.openqa.selenium.JavascriptException: SyntaxError: неожиданный токен: идентификатор

1 Ответ

0 голосов
/ 18 октября 2019

Существует разница между перетаскиванием вручную и использованием селена. У меня была похожая проблема, элемент выделяется (очевидно, должен двигаться), но нет. Это было вызвано тем, что события JavaScript, которые запускаются позади.

Проблемы, которые Бог решил с помощью встроенных событий JavaScript для выполнения перетаскивания. Вы можете найти такие реализации в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...