Est-ce que le drag-and-drop est possible dans Watir-webdriver?

je voudrais glisser-déposer un élément dans la position d'un autre, déclenché depuis un script Watir-webdriver.

par "glisser-déposer", je veux dire ramasser un élément traînant et le relâcher sur un autre. Par "possible", j'entends toute méthode de drag/drop qui peut être exécutée à partir d'un script Watir-webdriver. Cela inclut les extraits de code, les gemmes de tiers,etc.

si je comprends bien, le drag-and-drop est une requête de fonctionnalité pour core watir-webdriver (au moment de demander), je cherche donc (en principe) une alternative.

UPDATE glisser-déposer est maintenant partie intégrante du cœur de watir-webdriver (0.5.0, je crois)

UPDATE 2 Pour ceux qui cherchent l'illumination, c'est maintenant possible (à partir de la version 0.5.0):

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

a.drag_and_drop_on b

et

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

a.drag_and_drop_by 100, -200
15
demandé sur kinofrost 2011-06-28 12:31:37

3 réponses

Je ne sais pas si vous avez trouvé la réponse pour cela maintenant, mais c'est comme ça que je le fais pour 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")

il échoue sans les retards, mais il fonctionne bien avec eux sur FF5.

9
répondu GMD 2011-08-20 06:51:06

Je ne l'ai pas utilisé moi-même, mais il y a de la documentation sur l'utilisation de drag and drop ici:http://code.google.com/p/selenium/wiki/TipsAndTricks

1
répondu Željko Filipin 2011-07-06 10:57:53
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
répondu hemanth.hm 2012-04-17 15:40:13