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.