Существует проблема с реализацией Drag and Drop по URL: - http://www.seleniumeasy.com/test/drag-and-drop-demo.html, Они могли бы добавить функциональность перетаскивания с помощью событий наведения элементов.
- В результате, если или до тех пор, пока мы не выберем и не наведем элемент ItemToBeDragged на секунду или более, он не добавит элемент в список перетаскивания,
- и таким же образом.если или пока мы не наведем курсор мыши на элемент itemToBeDragged (наведите курсор мыши) на зону сброса, он не удалит перетаскиваемый элемент.
Поэтому для этой конкретной ситуации вы можете использовать класс Java робота для генерациифактические события мыши для выполнения перетаскивания на этой странице следующим образом: -
WebDriver browser = new ChromeDriver();
browser.get("http://www.seleniumeasy.com/test/drag-and-drop-demo.html");
// Robot class uses Screen Coordinates, therefore, we need the fullscreen browser
// instead of maximised. so that the webpage coordinates are mapped to screen
// coordinates.
browser.manage().window().fullscreen();
WebElement itemToBeDragged = browser
.findElement(By.xpath(" (//h3[contains(.,'Items to Drag')]//following-sibling::span)[1]"));
WebElement whereToBeDragged = browser.findElement(By.xpath("//div[@id='mydropzone']"));
// robot class object to perform actual mouse events.
// import java.awt.Robot and java.awt.event.InputEvent
Robot robot = new Robot();
try {
robot.mouseMove(itemToBeDragged.getLocation().x+itemToBeDragged.getSize().width/2, itemToBeDragged.getLocation().y+itemToBeDragged.getSize().getHeight()/2);
Thread.sleep(1000);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseMove(itemToBeDragged.getLocation().x+itemToBeDragged.getSize().width/3, itemToBeDragged.getLocation().y+itemToBeDragged.getSize().getHeight()/3);
Thread.sleep(1000);
Thread.sleep(1000);
robot.mouseMove(whereToBeDragged.getLocation().x+whereToBeDragged.getSize().width/3, whereToBeDragged.getLocation().y+whereToBeDragged.getSize().getHeight()/3);
Thread.sleep(1000);
robot.mouseMove(whereToBeDragged.getLocation().x+whereToBeDragged.getSize().width/2, whereToBeDragged.getLocation().y+whereToBeDragged.getSize().getHeight()/2);
Thread.sleep(1000);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}