我正在编写一个在Cuprite::Ferrum上运行的测试,在这个测试中,我需要单击、拖放一个元素到页面的另一个元素下面。当我手动做它的时候,它工作得很好,但是当我尝试将它放在测试中时,它几乎是有效的,但并不完全有效。
我找不到他为Ferrum或Cuprite拖放API,所以我创建了如下内容:
def click_and_drag(draggable, droppable, offset_x, offset_y)
x1, y1 = draggable.native.node.find_position
x2, y2 = droppable.native.node.find_position
mouse = page.driver.browser.mouse
mouse.move(x: x1, y: y1)
mouse.down
mouse.move(x: x2 + offset_x, y: y2 + offset_y)
mouse.up
end非常简单,工作良好,直到到达mouse.up部分为止。需要拾取的元素是由draggable = page.find(element)找到的,它需要放在droppable = page.find(element)下面。
在方法到达mouse.up部分之前,一切都进行得很顺利,拖放元素应该放在它的新位置,但是它只是返回到它的起始位置。
我指的是费勒姆文档https://www.rubydoc.info/gems/ferrum/0.5/Ferrum/Mouse,但无法找到答案。
发布于 2022-05-05 12:18:41
所以,这个方法是有效的,而且一切都很好,问题是offset_x和offset_y,如果您找到了它并想要使用它,将它保持在中间,并且保持它们很小!
https://stackoverflow.com/questions/72042411
复制相似问题