是否可以在watir-webdriver中拖放?

kin*_*ost 15 automated-tests web-testing watir watir-webdriver

我想将一个元素拖放到另一个元素的位置,从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
Run Code Online (Sandbox Code Playgroud)

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

a.drag_and_drop_by 100, -200
Run Code Online (Sandbox Code Playgroud)

GMD*_*GMD 9

我不知道你现在是否找到了答案,但这就是我为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")
Run Code Online (Sandbox Code Playgroud)

它没有延迟就失败了,但它在FF5上运行正常.