Ruby 在拖放对象之前按shift | control键拖放对象
我正在使用watir webdriver进行自动测试。Ruby 在拖放对象之前按shift | control键拖放对象,ruby,testing,selenium,drag-and-drop,watir-webdriver,Ruby,Testing,Selenium,Drag And Drop,Watir Webdriver,我正在使用watir webdriver进行自动测试。 在拖放之前,我们需要通过按下shift | control键进行拖放测试 我需要意识到: 1.单击元素“a” 2.开始拖动 3.按shift键控制 4.继续拖动 5.下降到元素“b” 有人能帮我吗?拖放支持在路线图中:根据,元素类有2个拖放方法:和 的rdoc示例似乎就是您试图实现的: a = browser.div(:id => "draggable") b = browser.div(:id => "droppable")
在拖放之前,我们需要通过按下shift | control键进行拖放测试 我需要意识到:
1.单击元素“a”
2.开始拖动
3.按shift键控制
4.继续拖动
5.下降到元素“b”
有人能帮我吗?拖放支持在路线图中:根据,元素类有2个拖放方法:和 的rdoc示例似乎就是您试图实现的:
a = browser.div(:id => "draggable")
b = browser.div(:id => "droppable")
a.drag_and_drop_on b
试试这个代码。我认为这对我们很有用。我很感激,如果你对我的答案满意,请投票支持我的答案。
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();
}
}
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
browser.driver.action.key_down(:shift).click_and_hold(a.wd).move_to(b.wd).key_up(:shift).release.perform