在放置之前暂停拖放对象

时间:2012-12-18 13:54:37

标签: ruby watir watir-webdriver

我正在使用watir进行自动化测试,本质上这个项目是一个任务管理器。

任务会下降到一周中的某一天,但需要暂停一段时间才能将任务悬停在特定日期,以便javascript识别它。

目前这只是firefox的一个问题,chrome很好。

所以我的问题是,你可以拖放但是在掉落之前将元素放在一个区域上吗?

目前正在使用此功能:

 dragTask.drag_and_drop_on dropTask

1 个答案:

答案 0 :(得分:3)

前一段时间与Watir-WebDriver有同样的问题,最初来修补Selenium ActionBuilder。这是如此:

require 'watir-webdriver'

module Selenium
  module WebDriver
    class ActionBuilder

      def hold(timeout)
        @devices.merge!(:self => self) unless @devices[:self]
        @actions << [:self, :sleep, timeout]
        self
      end

    end # ActionBuilder
  end # WebDriver
end # Selenium


begin
  browser = Watir::Browser.new
  browser.goto "data:text/html,#{DATA.read}"
  button_1 = browser.button(id: "button1")
  button_2 = browser.button(id: "button2")
  browser.driver.action.
                 click_and_hold(button_1.wd).
                 move_to(button_2.wd).
                 hold(3).
                 release.
                 perform
ensure
  browser.close
end


__END__

<html>
  <button id="button1">Button 1</button>
  <button id="button2">Button 2</button>
</html>