• 鼠标事件
  • Ruby selenium part8 鼠标事件

    鼠标事件

    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
    

    上一篇:Ruby selenium part7 键盘事件

    下一篇:Ruby selenium part9 弹框