2012-01-12 42 views
9

No puedo obtener arrastrar y soltar trabajando con los enlaces de Python WebDriver. Estoy trabajando con Google Chrome y Firefox en Mac OS X. Hay un hilo here en el que alguien tuvo un problema similar.Python Selenium WebDriver drag-and-drop

He intentado usar ActionsChains:

from selenium import webdriver 
from selenium.webdriver import ActionChains 
driver = webdriver.Chrome() 
actionChains = ActionChains(driver) 

actionChains.drag_and_drop(source, target).perform() 

¿Ha conseguido obtener el pitón WebDriver de arrastrar y soltar de trabajo?

+0

Podría ayudar si usted ha mencionado un problema concreto que está teniendo. – Marcin

+0

@Marcin: Gracias. He actualizado la pregunta. Estoy intentando arrastrar 'fuente' a' objetivo'. He publicado un código. – Randomblue

+0

Quizás haya un problema con 'source' o' target'. Tal vez mostrar esos también? – Marcin

Respuesta

7

Por el motivo de dar una respuesta actualizada, he verificado que esto de hecho funciona en Mac ahora.

from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains 

driver = webdriver.Firefox() 
driver.get("your.site.with.dragndrop.functionality.com") 
source_element = driver.find_element_by_name('your element to drag') 
dest_element = driver.find_element_by_name('element to drag to') 
ActionChains(driver).drag_and_drop(source_element, dest_element).perform() 

Reference

0

Es difícil decir exactamente sin algún ejemplo de HTML para la fuente y el objetivo.

Puede intentar usar drag_and_drop_by_offset(self, source, xoffset, yoffset) en su lugar con un valor pequeño para los parámetros de desplazamiento. A veces eso funciona

También puede intentar adaptar this C# example que utiliza mouse_down_at, mouse_move_at y mouse_up_at en su lugar.

4

Cadenas de acción actualmente no funcionan en Mac. Si probaras el código anterior en Linux o Windows, funcionaría. ChromeDriver está cerca de hacer esto bien, pero aún necesita trabajar AFAIK.

+0

Gracias por esto. ¿Tienes alguna idea del marco temporal de esto? – Randomblue

+0

Lamentablemente no conozco un plazo. Varias personas han tratado de ver qué hacer y acercarse, pero tenemos que tenerlo a la par con otras plataformas antes de lanzar – AutomatedTester

Cuestiones relacionadas