Перетаскивание селена и перетаскивание на физический курсор - PullRequest
0 голосов
/ 25 мая 2019

Selenium - 3.141.59
Java

При выполнении метода dragAndDrop исходный элемент перемещается не к целевому элементу, а к физическому курсору.

Попробовал следующее:

public static void dragAndDrop(WebDriver driver, WebElement src, WebElement target) {
    Actions builder = new Actions(driver);

    builder.moveToElement(target).build().perform();

    Action dragAndDrop = builder.clickAndHold(src)
            .moveToElement(target)
            .release(target)
            .build();
    dragAndDrop.perform();
}

И следующее:

public static void dragAndDrop(WebDriver driver, WebElement src, WebElement target) {
    Actions builder = new Actions(driver);
    builder.dragAndDrop(src, target).build().perform();
}

Но эти решения не работают.

Только это решение работает Хорошо:

public static void dragAndDropRobot(WebDriver driver, WebElement src, WebElement target) throws InterruptedException {
    Robot robot;
    int xWindow = driver.manage().window().getPosition().x;
    int yWindow = driver.manage().window().getPosition().y;
    int xTarget = target.getLocation().x;
    int yTarget = target.getLocation().y;

    Actions act = new Actions(driver);
    act.dragAndDrop(src, target).build().perform();
    try {
        robot = new Robot();
        robot.mouseMove((xWindow + xTarget), (yWindow + yTarget));
        Thread.sleep(2000);
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
    } catch (AWTException e) {
        e.printStackTrace();
    }
}

Есть ли какие-либорешение для решения этой проблемы, кроме робота?

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