我正在使用watir-webdriver進行自動化測試。
我們需要在拖放之前用按下的shift鍵控制拖放。使用watir-webdriver進行自動化測試時,在拖放操作前用拖動|控制鍵拖放對象
我需要認識到:
1.單擊元素a
2起拖
3.按shift |控制
4.繼續拖動
5.降元素 'B'
任何人都可以幫助我嗎?
我正在使用watir-webdriver進行自動化測試。
我們需要在拖放之前用按下的shift鍵控制拖放。使用watir-webdriver進行自動化測試時,在拖放操作前用拖動|控制鍵拖放對象
我需要認識到:
1.單擊元素a
2起拖
3.按shift |控制
4.繼續拖動
5.降元素 'B'
任何人都可以幫助我嗎?
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(HOLD)
browser.driver.action.key_down(:shift).click_and_hold(a.wd).move_to(b.wd).key_up(:shift).release.perform
每0.6.11 documentation,在Element
類有2種拖放方法: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
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();
}
}
嘗試這段代碼。我認爲這對你有用。我讚賞,把答案投票如果你滿意我的答案。 – DSL 2014-09-27 14:58:54