Ferrum mouse.up 不适用于点击和拖动方法
Ferrum mouse.up doesn't work for click & drag method
我正在编写一个在 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
部分,拖动的元素应该被拖放到新的位置,但它只是回到起始位置。
我指的是 Ferrum 文档 https://www.rubydoc.info/gems/ferrum/0.5/Ferrum/Mouse 但找不到答案。
因此,该方法有效并且一切正常,问题出在 offset_x 和 offset_y,如果您以某种方式找到它并想使用它,请将其保留在中间,并保留它们小!
我正在编写一个在 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
部分,拖动的元素应该被拖放到新的位置,但它只是回到起始位置。
我指的是 Ferrum 文档 https://www.rubydoc.info/gems/ferrum/0.5/Ferrum/Mouse 但找不到答案。
因此,该方法有效并且一切正常,问题出在 offset_x 和 offset_y,如果您以某种方式找到它并想使用它,请将其保留在中间,并保留它们小!