Ricerca nel sito web

Metodo drag_and_drop_by_offset – Catene di azioni in Selenium Python


Il metodo di trascinamento della selezione per offset viene eseguito utilizzando l'API della catena di azioni in selenio. È simile al semplice trascinamento della selezione oltre a creare la funzionalità utilizzando l'offset dell'oggetto. In questo articolo, creeremo la funzionalità di trascinamento della selezione per offset utilizzando una catena di azioni in Selenium Python.

Cos'è il metodo drag and drop tramite Offset?

Il metodo di trascinamento della selezione per offset è un'azione per trascinare un elemento da una posizione a un'altra utilizzando la sua posizione di offset. Action chin fornisce un metodo drag_and_drop_by_offset() che accetta due argomenti: uno è l'elemento da trascinare e l'altro sono i valori di offset xey.

I valori di offset x e y specificano i pixel in cui l'elemento deve essere spostato rispettivamente in direzione orizzontale e verticale. Il valore di offset è un valore relativo alla posizione corrente dell'elemento. Ad esempio, se la posizione corrente dell'elemento è (x1, y1) e i valori di offset sono (dx, dy), la nuova posizione dell'elemento dopo l'azione di trascinamento sarà (x1+dx, y1+dy).

Esempio

Nell'esempio seguente, utilizziamo il metodo drag_and_drop_by_offset per spostare un dispositivo di scorrimento sul sito Web dell'interfaccia utente jQuery. per prima cosa visitiamo il sito Web dell'interfaccia utente jQuery e passiamo all'iframe contenente l'elemento slider. Quindi individuiamo l'elemento slider utilizzando il metodo find_element e creiamo un'istanza di ActionChains. Quindi conteniamo l'azione drag_and_drop_by_offset due volte per spostare la maniglia dello slider rispettivamente a destra di 50 pixel e di nuovo a sinistra di 50 pixel.

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()

Produzione

Conclusione

In questo articolo, abbiamo discusso l'implementazione del trascinamento della selezione con il metodo offset utilizzando una catena di azioni in Selenium Python. Il metodo di trascinamento per offset viene utilizzato per eseguire un'azione per trascinare un elemento da una posizione a un'altra utilizzando la sua posizione di offset.

Articoli correlati: