ruby - 需要用 capybara(ruby) 在某个坐标点点击、按住并移动

标签 ruby selenium capybara headless webautomation

我试图在网页的特定坐标处实现点击、拖动和释放, headless (headless)地使用 Capybara。 target是一个包含calendar的元素,通过ajax响应鼠标事件。通过单击、拖动和释放来添加时间表。我尝试了两种方法:

方法一

cal = find(:xpath, "//div[@class='dhx_cal_container']")
page.driver.browser.mouse.move_to(cal.native, 240, 250)
page.driver.browser.mouse.down
page.driver.browser.mouse.move_by(0, 150)
page.driver.browser.mouse.up

方法 1 的问题:根据屏幕截图没有任何反应。

方法二

driver.browser.action.move_to(native).move_by(x1, y1).click_and_hold.perform
driver.browser.action.move_to(native).move_by(x2, y2).release.perform

方法 2 的问题:click_and_hold 始终指向元素的中心。

在这种情况下如何实现点击和拖动有什么想法吗?

最佳答案

你应该使用 capybara 的drag_to方法

source = page.find('#foo')
target = page.find('#bar')
source.drag_to(target)

更多信息:http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Adrag_to

关于ruby - 需要用 capybara(ruby) 在某个坐标点点击、按住并移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36135461/

相关文章:

selenium-webdriver - 未初始化的常量Capybara::DSL

html - 使用 Rspec 和 Capybara 测试视频

ruby-on-rails - rails 重新加载!重置类变量,需要重新运行一些初始化程序

ruby-on-rails - 如何从 Rails 4.0.2 Controller 中的选择标签中获取所选选项

ruby-on-rails - ROR/Hpricot : parsing a site and searching/comparing strings with regex

java - 如何使用Java通过Selenium WebDriver获取<ul>的所有<li>?

python - 如何将 selenium 独立 docker 容器与主机网络正确链接?

python selenium 因查找不存在的元素而挂起

javascript - 导轨 : Filling in a dynamic field using capybara

ruby - Ruby 中的 super 关键字