Pesquisa de site

Método drag_and_drop_by_offset – Cadeias de ação em Selenium Python


O método arrastar e soltar por deslocamento é executado usando a API Action Chain em Selenium. É semelhante ao simples arrastar e soltar, além de criar a funcionalidade usando o deslocamento do objeto. Neste artigo, criaremos a funcionalidade arrastar e soltar por deslocamento usando uma cadeia de ações no Selenium Python.

O que é o método arrastar e soltar pelo método Offset?

O método arrastar e soltar por deslocamento é uma ação para arrastar um elemento de um local para outro usando sua posição de deslocamento. Action chin fornece um método drag_and_drop_by_offset() que leva dois argumentos - um é o elemento a ser arrastado e o outro são os valores de deslocamento xey.

Os valores de deslocamento xey especificam os pixels em que o elemento deve ser movido na direção horizontal e vertical, respectivamente. O valor de deslocamento é um valor relativo à posição atual do elemento. Por exemplo, se a posição atual do elemento for (x1, y1) e os valores de deslocamento forem (dx, dy), a nova posição do elemento após a ação de arrastar será (x1+dx, y1+dy).

Exemplo

No exemplo abaixo, usamos o método drag_and_drop_by_offset para mover um controle deslizante no site jQuery UI. primeiro navegamos até o site da UI do jQuery e mudamos para o iframe que contém o elemento slider. Em seguida, localizamos o elemento do controle deslizante usando o método find_element e criamos uma instância de ActionChains. Em seguida, encadeamos a ação drag_and_drop_by_offset duas vezes para mover a alça do controle deslizante para a direita em 50 pixels e de volta para a esquerda em 50 pixels, 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()

Saída

Conclusão

Neste artigo, discutimos a implementação do método arrastar e soltar por deslocamento usando uma cadeia de ação no Selenium Python. O método arrastar e soltar por deslocamento é usado para executar uma ação para arrastar um elemento de um local para outro usando sua posição de deslocamento.

Artigos relacionados: