在放下之前用按下的shift |控制键拖放对象

时间:2014-09-26 20:12:54

标签: ruby testing selenium drag-and-drop watir-webdriver

我正在使用watir-webdriver进行自动化测试 我们需要在下降之前用按下的移位控制键进行拖放测试。

我需要意识到:
1.点击元素'a'
2.开始拖动 3.按下转移控制 4.继续拖动
5.放到元素'b'

任何人都可以帮我吗?

4 个答案:

答案 0 :(得分:1)

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 my_page
  a = browser.div(id: "a")
  b = browser.div(id: "b")
  browser.driver.action.click_and_hold(a.wd).move_to(b.wd).hold(3).key_down(:shift).key_up(:shift).release.perform
  #browser.driver.action.click_and_hold(a.wd).move_to(b.wd).hold(3).send_keys(:shift).release.perform

ensure
  browser.close
end

或者如果需要药物加压shiift(持有)

browser.driver.action.key_down(:shift).click_and_hold(a.wd).move_to(b.wd).key_up(:shift).release.perform

答案 1 :(得分:0)

拖放支持位于路线图中:https://code.google.com/p/selenium/wiki/RoadMap

答案 2 :(得分:0)

根据0.6.11 documentationElement类有两种拖放方法:drag_and_drop_bydrag_and_drop_on

drag_and_drop_on的rdoc示例似乎是您正在尝试完成的内容:

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

答案 3 :(得分:0)

    public class DragAndDropConcept {
    public static void main(String[] args) {

    WebDriver driver = new FirefoxDriver();
    driver.get("http://jqueryui.com/droppable/");

    driver.switchTo().frame(0);    

    Actions obj = new Actions(driver);

    obj.clickAndHold(driver.findElement(By.xpath("//*[@id='draggable']")))
    .moveToElement(driver.findElement(By.xpath("//*[@id='droppable']")))
    .release().build().perform();

    }
    }