drag and drop



Drag and Drop(перетаскивание) — это операция перетаскивания элемента из одной позиции в другую. Это может быть полезно, если вы хотите автоматизировать действия пользователя, такие как загрузка файлов, перемещение элементов в различные области или установка их в определенный порядок.

Selenium предоставляет реализацию drag and drop с помощью класса ActionChains. Вы можете создать экземпляр ActionChains, используя экземпляр вашего веб-драйвера, а затем использовать методы, такие как drag_and_drop(), drag_and_drop_by_offset() или click_and_hold(), чтобы выполнить действие перетаскивания.

.drag_and_drop()

action.drag_and_drop(element, target) — это метод класса ActionChains. Он позволяет перетащить element  и поместить его в элемент target.

element — элемент, который нужно перетаскивать.

target —  целевой элемент, куда будем перемещать иcходный элемент

Шаги работы метода .drag_and_drop():

Найти Элемент для Перетаскивания: Сначала Selenium должен найти element на веб-странице, который вы хотите перетащить. Это может быть сделано с помощью различных методов поиска, таких как find_element(By.ID, ‘ID_ELEM’).

# Находим исходный элемент, который будем перемещать
element = driver.find_element(By.ID,"source-element")

Найти целевой элемент: затем Selenium должен найти место target, куда вы хотите перетащить выбранный element.

# Находим целевой элемент, куда будем перемещать иcходный элемент
target = driver.find_element(By.ID,"target-element")

Инициализация действий: После того как элементы найдены, создается объект ActionChains, который используется для инициализации серии действий.

# Создаём экземпляр класса ActionChains
actions = ActionChains(driver)

Выполнение перетаскивания: С помощью метода drag_and_drop объекта ActionChains Selenium «берет» element, «перетаскивает» его и «отпускает» на месте target. Весь этот процесс происходит виртуально в браузере, как если бы пользователь делал это вручную.

# Выполняем действие перетаскивания
actions.drag_and_drop(element, target).perform()

Завершение действия: После того как действие перетаскивания инициировано, его нужно выполнить с помощью метода perform.

Пример работы:

import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

url = "https://mob25.com/"
with webdriver.Chrome() as driver:
    driver.get(url)

    # Находим элементы
    draganddrop = driver.find_element(By.CLASS_NAME, "draganddrop")
    draganddrop_end = driver.find_element(By.CLASS_NAME, "draganddrop_end")

    # Выполняем перетаскивание
    ActionChains(driver).drag_and_drop(draganddrop, draganddrop_end).perform()
    time.sleep(5)


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: