Python Selenium WebDriver перетаскивание

Я не могу получить перетаскивание и падение работы с привязками Python WebDriver. Я работаю с Google Chrome и Firefox на Mac OS X. Есть поток здесь где у кого-то была аналогичная проблема.

Я пробовал использовать ActionsChains:

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

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

вам удалось заставить Python WebDriver перетащить и падение работать?

3 ответов


чтобы дать обновленный ответ, я проверил, что это действительно работает на Mac сейчас.

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

ссылка


цепи действий в настоящее время не работают на Mac. Если вы попробуете код выше в Linux или Windows, он будет работать. ChromeDriver близок к тому, чтобы получить это право, но все еще нуждается в работе AFAIK.


трудно сказать точно без некоторого образца HTML для источника и цели.

вы можете попробовать использовать drag_and_drop_by_offset(self, source, xoffset, yoffset) вместо с небольшим значением для параметров смещения. Иногда это срабатывает.

вы также можете попытаться адаптироваться этот пример c# использует mouse_down_at, mouse_move_at и .