鼠标事件
action
source = driver.find_element(id: "source")
target = driver.find_element(id: "target")
driver.action.drag_and_drop(source, target).perform
click
driver.find_element(css: "input[type='submit']").click
clickAndHold
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://www.google.com'
# Store 'Sign In' button web element
sign_in = driver.find_element(link_text: 'Sign in')
# Perform click-and-hold action on the element
driver.action.click_and_hold(sign_in).perform
ensure
driver.quit
end
contextClick
此方法首先将鼠标移动到元素的位置, 然后在给定元素执行上下文点击(右键单击).
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://www.google.com'
# Store 'Sign In' button web element
sign_in = driver.find_element(link_text: 'Sign in')
# Perform context-click action on the element
driver.action.context_click(sign_in).perform
ensure
driver.quit
end
doubleClick
它将移动到该元素, 并在给定元素的中间双击
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://www.google.com'
# Store 'Sign In' button web element
sign_in = driver.find_element(link_text: 'Sign in')
# Perform double-click action on the element
driver.action.double_click(sign_in).perform
ensure
driver.quit
end
moveToElement
此方法将鼠标移到元素的中间. 执行此操作时, 该元素也会滚动到视图中.
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://www.google.com'
# Store 'Gmail' anchor web element
gmail_link = driver.find_element(link_text: 'Gmail')
# Performs mouse move action onto the element
driver.action.move_to(gmail_link).perform
ensure
driver.quit
end
moveByOffset:
此方法将鼠标从其当前位置(或0,0)移动给定的偏移量. 如果坐标在视图窗口之外, 则鼠标最终将在浏览器窗口之外.
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://www.google.com'
# Store 'Gmail' anchor web element
gmail_link = driver.find_element(link_text: 'Gmail')
# Capture x and y offset positions of element
x_offset = gmail_link.rect.x
y_offset = gmail_link.rect.y
# Performs mouse move action onto the offset position
driver.action.move_to_location(x_offset, y_offset).perform
ensure
driver.quit
end
dragAndDrop
此方法首先在源元素上单击并按住,然后移动到目标元素的位置后释放鼠标.
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://crossbrowsertesting.github.io/drag-and-drop'
# Store 'box A' as source element
source_ele = driver.find_element(id: 'draggable')
# Store 'box B' as source element
target_ele = driver.find_element(id: 'droppable')
# Performs drag and drop action of sourceEle onto the targetEle
driver.action.drag_and_drop(source_ele, target_ele).perform
ensure
driver.quit
end
dragAndDropBy
此方法首先在源元素上单击并按住, 移至给定的偏移量后释放鼠标.
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://crossbrowsertesting.github.io/drag-and-drop'
# Store 'box A' as source element
source_ele = driver.find_element(id: 'draggable')
target_ele = driver.find_element(id: 'droppable')
# Capture x and y offset positions of element
x_offset = target_ele.rect.x
y_offset = target_ele.rect.y
# Performs dragAndDropBy onto the target element offset position
driver.action.drag_and_drop_by(source_ele, x_offset, y_offset).perform
ensure
driver.quit
end
release
此操作将释放按下的鼠标左键. 如果WebElement转移了, 它将释放给定WebElement上按下的鼠标左键.
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
begin
# Navigate to Url
driver.get 'https://crossbrowsertesting.github.io/drag-and-drop'
source_ele = driver.find_element(id: 'draggable')
target_ele = driver.find_element(id: 'droppable')
driver.action.click_and_hold(source_ele).move_to(target_ele).perform
# Performs release event
driver.action.release.perform
ensure
driver.quit
end