Как выполнить метод смещения перетаскивания в Selenium WebDriver с использованием Java?

Опубликовано: 22 Февраля, 2023

Selenium — это инструмент веб-автоматизации с открытым исходным кодом, который поддерживает множество действий пользователя, выполняемых в веб-браузере. Автоматизация современной веб-страницы с функцией перетаскивания и перетаскивания используется для загрузки файлов и множества действий пользователя. поэтому для выполнения действий перетаскивания селен предоставляет класс под названием Actions. Класс Action предоставляет метод для действий перетаскивания и многих других действий мыши и действий клавиатуры. Действия, предоставляемые этим классом, выполняются API, называемым расширенным взаимодействием с пользователем в веб-драйвере selenium.

Давайте обсудим выполнение перетаскивания с использованием класса Action в веб-драйвере selenium:

На некоторых веб-страницах нам нужно выполнить функцию перетаскивания. В этом случае нам нужно использовать метод, предоставляемый классом действий, для выполнения этого действия.

Существует два типа методов перетаскивания, предоставляемых классом Actions:

  1. перетащите, используя исходное и целевое местоположение.
  2. перетащите, используя источник и смещение.

1. перетащите, используя исходное и целевое местоположение

Actions action=new Actions(driver);

action.dragAndDrop(Source, Destination).perform();

2. перетащите, используя источник и смещение

Actions action=new Actions(driver);

action.dragAndDropBy(Source, xoffset, yoffset).perform();

Здесь этот метод получает три входных параметра: один для местоположения источника, а два других для смещений по осям x и y. Этот метод заключается в том, чтобы щелкнуть и удерживать веб-элемент в исходном местоположении, а затем отпустить кнопку мыши в указанном месте. Смещение по оси x — это горизонтальное перемещение, а смещение по оси y — вертикальное перемещение.

Пример программы:

В этом примере мы переходим к URL-адресу и выполняем действие перетаскивания, используя смещение на этой странице.

Java




public class Geeks {
    
    public void geekforgeeks() throws InterruptedException {
  
        ChromeDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        Thread.sleep(3000);
        Actions action=new Actions(driver);
        WebElement drag = driver.findElement(By.id("draggable")); 
        
        action.dragAndDropBy(drag,150,50).build().perform();
        Thread.sleep(3000);
        driver.close();        
          
    }
}

В этой программе мы использовали смещение x и y как (150 и 50), а метод щелкает и удерживает перетаскиваемый элемент и освобождает его в указанном смещении на странице. Вывод этой программы,

Выход: