ruby - 在放置前按下 shift|control 键拖放对象

标签 ruby testing selenium drag-and-drop watir-webdriver

我正在使用 watir-webdriver 进行自动化测试。
我们需要在拖放前按下 shift|control 键来测试拖放。

我需要意识到:
1. 点击元素'a'
2.开始拖动
3. 按shift|control
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

或者如果需要按下shift(按住)的药物

browser.driver.action.key_down(:shift).click_and_hold(a.wd).move_to(b.wd).key_up(:shift).release.perform

关于ruby - 在放置前按下 shift|control 键拖放对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067621/

相关文章:

java - 如何通过测试解决 API 调用上的错误代码 "405"?

java - 如何在 IE 中查找框架内的元素?

ruby - RVM Ruby 2.0.0 在 Ubuntu 11 中安装失败

ruby-on-rails - Ruby on Rails 错误处理、捕获错误和消息

ruby-on-rails - 将更清晰的描述传递给 RSpec `its` 方法

unit-testing - unitTest中如何使用EasyMock

python - 基于 Selenium 的抓取代码失败并出现错误 NoSuchElementException

java - 启动appium浏览器时出错:- org. openqa.selenium.WebDriverException : ERROR running Appium command: Arguments to path.解析必须是字符串

mysql - 使用 Ruby/MySQL 构建有效的 MySQL 查询

ruby-on-rails - 将 Redcarpet 与 rails 4 一起使用