Как протестировать функцию "перетаскивания" из библиотеки react-beautiful-dnd с помощью Selenium в Java?
Я пробовал различные варианты, но не смог смоделировать щелчок мыши, чтобы перетаскивать элемент из одной позиции в другую в браузере с помощью Selenium. Когда тест выполняется, я вижу, что элемент выбран, но он не перемещается в указанную точку отбрасывания. Любые предложения или идеи с благодарностью!
Вот как я определил функцию в моей последней попытке (вариации на эту тему также не выполнялись):
private void dragAndDrop(WebElement dragPoint, WebElement dropPoint, WebDriver driver) {
Actions builder = new Actions(driver);
builder.clickAndHold(dragPoint).perform();
builder.pause(Duration.ofSeconds(1));
builder.moveByOffset(10,0).perform();
builder.moveToElement(dropPoint).perform();
builder.moveByOffset(10,0).perform();
builder.pause(Duration.ofSeconds(1));
builder.release();
builder.build();
builder.perform();
}
Также попробовал следующее (тот же результат):
private void dragAndDrop(WebElement dragPoint, WebElement dropPoint, WebDriver driver) {
Actions builder = new Actions(driver);
Action dragAndDrop = builder.dragAndDrop(dragPoint, dropPoint).build();
dragAndDrop.perform();
}
В тесте 2 элемента идентифицируются однозначно с помощью xpath и вызывается функция:
WebElement dragPoint = driver.findElement(By.xpath(".../div[3]/...(etc.)/div[@class='rst__moveHandle']"));
WebElement dropPoint = driver.findElement(By.xpath(".../div[5]/...(etc.)/div[@class='rst__moveHandle']"));
dragAndDrop(dragPoint, dropPoint, driver);
Соответствующие библиотеки:
react-beautiful-dnd: https://github.com/atlassian/react-beautiful-dnd
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;