【发布时间】:2013-12-21 19:39:58
【问题描述】:
我正在尝试使用 selenium webdriver 和 ruby 执行拖放操作,我尝试了以下选项:
el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")
el1.drag_and_drop_on el2
选项 2:
el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")
@driver.action.drag_and_drop(el1, el2).perform
选项 3:
el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")
@browser.action.drag_and_drop(element, target).perform
当我执行@driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow").click 或@driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder").click 时,代码能够单击对象,即它能够找到元素但由于某种原因无法拖放。以上拖放选项均无效。
【问题讨论】:
-
在没有Capybara接口的情况下直接使用驱动有点奇怪。在 Capubara 中使用了第一个选项 rubydoc.info/gems/capybara/0.4.0/Capybara/Driver/Selenium/…
def drag_to(element) native.drag_and_drop_on(element.native) end您还可以检查两个元素的可见性。
标签: ruby drag-and-drop selenium-webdriver