使用 Selenium Webdriver for Ruby 进行 HTML5 拖放

2022-01-11 00:00:00 selenium webdriver drag-and-drop ruby html

是否有任何变通方法可以让 HTML5 拖放与 Selenium Webdriver 和 Ruby 一起使用?我正在使用 Selenium-Webdriver 2.20.0 和 Ruby 1.9.2

Are there any work arounds to getting HTML5 Drag and Drop working with Selenium Webdriver with Ruby? I am using Selenium-Webdriver 2.20.0 with Ruby 1.9.2

这是一个重现问题的简单测试:

Here is a simple test to reproduce the issue:

require "selenium-webdriver"
require "test/unit"

class Html5DragAndDropTest < Test::Unit::TestCase

  def setup
    @driver = Selenium::WebDriver.for :firefox
    @driver.manage.timeouts.implicit_wait = 30
  end

  def teardown
    @driver.quit
  end

  def test_html5_drag_and_drop
    @driver.get("http://html5demos.com/drag")
    target = @driver.find_element(:id, "one")
    source = @driver.find_element(:id, "bin")
    @driver.action.drag_and_drop(target, source).perform
    assert target.displayed? == false
  end
end

推荐答案

这仍然是 Selenium 中的一个错误,所以上面提到的 JavaScript 解决方法是一个很好的解决方案.

This is still a bug in Selenium, so the JavaScript workaround noted above is a good one.

我构建了 一个示例 HTML 拖放页面,并编写了一个测试来使用 Ryan 提供的 drag_and_drop_helper.js 要点.您可以在这里查看我的完整文章.

I built an example HTML drag and drop page and wrote a test to exercise it using the drag_and_drop_helper.js gist Ryan provided. You can see my full write-up here.

干杯,
戴夫 H
@TourDeDave

相关文章