Watir - 拖放不工作

npa*_*osg 5 ruby drag-and-drop watir

我需要测试一些我需要拖放一些UI元素的功能.

我尝试在此页面上执行此操作http://www.html5rocks.com/en/tutorials/dnd/basics/:

browser.divs(:class => "column")[-2].drag_and_drop_on browser.divs(:class => "column")[-3]
Run Code Online (Sandbox Code Playgroud)

在chrome中,我没有看到任何事情发生.在Firefox中,我看到鼠标按钮已关闭,但没有其他任何事情发生 - 元素没有移动.我也尝试过其他页面,这似乎从来没有奏效.

我也尝试过这种解决方法(建议在多个线程中使用),它也不起作用:

my_element = browser.divs(:class => "column")[-4]
target = browser.divs(:class => "column")[-3]
my_element.fire_event("onmousedown")
driver = browser.driver
driver.action.click_and_hold(my_element.wd).perform
driver.action.move_to(target.wd).perform
target.fire_event("onmouseup”)
Run Code Online (Sandbox Code Playgroud)

我在mac上使用ruby 1.9.3.我也在windows上尝试了ruby 2.1.5,结果是一样的.

有没有办法用watir拖放?

npa*_*osg 1

这就是最终让它发挥作用的原因(一点也不花哨,但它为我做到了):

# monkey patch for webdriver: copy and paste in IRB
module Selenium
  module WebDriver
    class ActionBuilder
      def drag_and_drop(source, target)
        click_and_hold source
        move_to        target, 0, 0
        release        target

        self
      end
    end # ActionBuilder
  end # WebDriver
end # Selenium
Run Code Online (Sandbox Code Playgroud)