Python Selenium WebDriver перетаскивание - PullRequest
10 голосов
/ 12 января 2012

Я не могу заставить работать методом перетаскивания с привязками 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 ]

11 голосов
/ 02 августа 2014

Чтобы дать обновленный ответ, я убедился, что сейчас это действительно работает на 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()

Ссылка

5 голосов
/ 24 января 2012

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

0 голосов
/ 20 января 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...