我正在使用watir-webdriver进行自动化测试 我们需要在下降之前用按下的移位控制键进行拖放测试。
我需要意识到:
1.点击元素'a'
2.开始拖动
3.按下转移控制
4.继续拖动
5.放到元素'b'
任何人都可以帮我吗?
答案 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)
答案 2 :(得分:0)
根据0.6.11 documentation,Element
类有两种拖放方法:drag_and_drop_by
和drag_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();
}
}