我试图在网页的特定坐标处实现点击、拖动和释放, 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/