Поиск по сайту:

Метод drag_and_drop_by_offset — Цепочки действий в Selenium Python


Метод перетаскивания по смещению выполняется с использованием API цепочки действий в Selenium. Это похоже на простое перетаскивание в дополнение к созданию функциональности с использованием смещения объекта. В этой статье мы создадим функцию перетаскивания по смещению, используя цепочку действий в Selenium Python.

Что такое перетаскивание методом смещения?

Метод перетаскивания по смещению — это действие по перетаскиванию элемента из одного места в другое, используя его положение смещения. Действие chin предоставляет метод drag_and_drop_by_offset(), который принимает два аргумента: один — это элемент, который нужно перетащить, а другой — значения смещения по x и y.

Значения смещения x и y определяют пиксели, в которых элемент должен перемещаться в горизонтальном и вертикальном направлении соответственно. Значение смещения является относительным значением к текущей позиции элемента. Например, если текущая позиция элемента — (x1, y1), а значения смещения — (dx, dy), новая позиция элемента после действия перетаскивания будет (x1+dx, y1+dy).

Пример

В приведенном ниже примере мы используем метод drag_and_drop_by_offset для перемещения ползунка на веб-сайте пользовательского интерфейса jQuery. сначала мы переходим на веб-сайт пользовательского интерфейса jQuery и переключаемся на iframe, содержащий элемент слайдера. Затем мы находим элемент ползунка с помощью метода find_element и создаем экземпляр ActionChains. Затем мы дважды связываем действие drag_and_drop_by_offset, чтобы переместить дескриптор ползунка вправо на 50 пикселей и обратно влево на 50 пикселей соответственно.

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

# Create a new Chrome browser instance
driver = webdriver.Chrome()

# Navigate to the jQuery UI website
driver.get("https://jqueryui.com/slider/")

# Switch to the iframe containing the slider element
driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, ".demo-frame"))

# Find the slider element
slider_frame = driver.find_element(By.CSS_SELECTOR, "#slider")
slider = slider_frame.find_element(By.CSS_SELECTOR, ".ui-slider-handle")

# Create an instance of ActionChains
action_chains = ActionChains(driver)

# Chain the drag and drop action with an offset of (50, 0) pixels
# to move the slider handle to the right by 50 pixels
action_chains.drag_and_drop_by_offset(slider, 50, 0).perform()

# Chain the drag and drop action with an offset of (-50, 0) pixels
# to move the slider handle back to the left by 50 pixels
action_chains.drag_and_drop_by_offset(slider, -50, 0).perform()

# Close the browser window
driver.quit()

Выход

Заключение

В этой статье мы обсудили реализацию метода перетаскивания по смещению с использованием цепочки действий в Selenium Python. Метод перетаскивания по смещению используется для выполнения действия по перетаскиванию элемента из одного места в другое, используя его положение смещения.

Статьи по данной тематике: