Método drag_and_drop_by_offset: cadenas de acción en Selenium Python
El método de arrastrar y soltar por desplazamiento se realiza utilizando la API de la cadena de acción en Selenium. Es similar a simplemente arrastrar y soltar, además de crear la funcionalidad utilizando el desplazamiento del objeto. En este artículo, crearemos la funcionalidad de arrastrar y soltar mediante desplazamiento utilizando una cadena de acciones en Selenium Python.
¿Qué es el método de arrastrar y soltar por Offset?
El método de arrastrar y soltar por desplazamiento es una acción para arrastrar un elemento de una ubicación a otra utilizando su posición de desplazamiento. Action chin proporciona un método drag_and_drop_by_offset() que toma dos argumentos: uno es el elemento que se va a arrastrar y el otro son los valores de desplazamiento xey.
Los valores de desplazamiento xey especifican los píxeles que el elemento se moverá en dirección horizontal y vertical respectivamente. El valor de desplazamiento es un valor relativo a la posición actual del elemento. Por ejemplo, si la posición actual del elemento es (x1, y1) y los valores de desplazamiento son (dx, dy), la nueva posición del elemento después de la acción de arrastre será (x1+dx, y1+dy).
Ejemplo
En el siguiente ejemplo, utilizamos el método drag_and_drop_by_offset para mover un control deslizante en el sitio web jQuery UI. Primero navegamos al sitio web de jQuery UI y cambiamos al iframe que contiene el elemento deslizante. Luego ubicamos el elemento deslizante usando el método find_element y creamos una instancia de ActionChains. Luego encadenamos la acción drag_and_drop_by_offset dos veces para mover el controlador deslizante hacia la derecha 50 píxeles y hacia la izquierda 50 píxeles, respectivamente.
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()
Producción
Conclusión
En este artículo, analizamos la implementación del método de arrastrar y soltar mediante desplazamiento mediante el uso de una cadena de acciones en Selenium Python. El método de arrastrar y soltar por desplazamiento se utiliza para realizar una acción para arrastrar un elemento de una ubicación a otra usando su posición de desplazamiento.