Is drag-and-drop possible in watir-webdriver?

寵の児 提交于 2019-11-30 01:50:04

问题


I would like to drag-and-drop one element to the position of another, triggered from within a watir-webdriver script.

By "drag-and-drop" I mean picking up a draggable element and releasing it on another. By "possible" I mean any method for drag/drop that can be executed from a watir-webdriver script. This includes code snippets, third party gems, etc.

As I understand it drag-and-drop is a feature request for core watir-webdriver (at time of asking), so I'm looking (in principle) for an alternative.

UPDATE drag-and-drop is now part of core watir-webdriver (as of 0.5.0, I believe)

UPDATE 2 For those seeking enlightenment, this is now possible (as of version 0.5.0):

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

a.drag_and_drop_on b

and

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

a.drag_and_drop_by 100, -200

回答1:


I don't know if you found the answer for this by now, but this is how I do it for 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")

It fails without the delays, but it works fine with them on FF5.




回答2:


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




回答3:


Did not use it myself, but there is some documentation about using Using drag and drop here: https://github.com/SeleniumHQ/selenium/wiki/Tips-And-Tricks



来源:https://stackoverflow.com/questions/6503704/is-drag-and-drop-possible-in-watir-webdriver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!