Возможно ли перетаскивание в watir-webdriver? - PullRequest
15 голосов
/ 28 июня 2011

Я бы хотел перетащить один элемент в положение другого, запущенного из скрипта watir-webdriver.

Под «перетаскиванием» я подразумеваю поднять перетаскиваемый элемент и выпустить его на другой. Под «возможным» я подразумеваю любой метод перетаскивания, который можно выполнить из скрипта watir-webdriver. Это включает фрагменты кода, сторонние гемы и т. Д.

Насколько я понимаю, перетаскивание - это запрос функции для основного watir-webdriver (на момент запроса), поэтому я ищу (в принципе) альтернативу.

ОБНОВЛЕНИЕ перетаскивание теперь является частью ядра watir-webdriver (я полагаю, с версии 0.5.0)

ОБНОВЛЕНИЕ 2 Для тех, кто ищет просветления, это теперь возможно (начиная с версии 0.5.0):

a = browser.div(:id => "draggable")
b = browser.div(:id => "droppable")

a.drag_and_drop_on b

и

a = browser.div(:id => "draggable")

a.drag_and_drop_by 100, -200

Ответы [ 3 ]

9 голосов
/ 20 августа 2011

Я не знаю, нашел ли ты ответ на этот вопрос, но вот как я делаю это для Firefox:

my_element.fire_event("onmousedown")
driver=browser.driver
driver.action.click_and_hold(my_element.wd).perform

sleep 2
driver.action.move_to(target.wd).perform

sleep 2
my_element.fire_event("onmouseup")

Он не работает без задержек, но он отлично работает с ними на FF5.

1 голос
/ 16 апреля 2012
require 'rubygems'
require 'watir-webdriver'

module Watir
  class Element
    def drag_and_drop_on(other)
      assert_exists
      driver.action.drag_and_drop(@element, other.wd).perform
    end
  end
end

profile = Selenium::WebDriver::Firefox::Profile.new
profile.native_events = true

b = Watir::Browser.new :firefox, :profile => profile
b.goto "http://jqueryui.com/demos/droppable/default.html"

b.element(:id => "draggable").drag_and_drop_on(b.element(:id => "droppable"))

h3manth.com

1 голос
/ 06 июля 2011

Сам не использовал, но есть некоторая документация по использованию Использование перетаскивания здесь: https://github.com/SeleniumHQ/selenium/wiki/Tips-And-Tricks

...