赛普拉斯: mouseover mousedown mousemove mouseup 不工作

分享于2022年07月17日 cypress drag-and-drop electron 问答
【问题标题】:赛普拉斯: mouseover mousedown mousemove mouseup 不工作(Cypress: mouseover mousedown mousemove mouseup Not working)
【发布时间】:2021-11-10 10:40:38
【问题描述】:

所以问题很简单:

  • 点击圆圈并移动线条

[ Cypress: mouseover mousedown mousemove mouseup Not working

  • 期望的输出

[ Cypress: mouseover mousedown mousemove mouseup Not working

现在我正在尝试使用 Cypress 使用以下代码执行确切的操作(将显示所有版本):

cy.get("my element")
.tigger("mouseover")
.trigger("mousedown", { which: 1})
.trigger("mousemove", {pageX: 100,pageY: 100,which: 1})
.trigger("mouseup", { force: true });

我尝试了很多此代码的变体:
比如将 movmentX, movmentY clientX, clientY 添加到“mousemove”触发器
还有 button: 0 force: true 到“mousedown”触发器 没有任何效果

这是一个简单的按下鼠标左键将其移动到想要的位置并失去鼠标按下。
这就像拖放但不完全是因为它停留在同一个 HTML 元素中< /strong>

我在这里错过了什么?

节点版本:16.13.0 操作系统:macOS M1

网址: https://geoman.io/geojson-editor

来自 cypress chrome

Cypress: mouseover mousedown mousemove mouseup Not working

Cypress: mouseover mousedown mousemove mouseup Not working


【解决方案1】:

我对@9​​87654321@也有很大的问题

对我有帮助的是添加所有可能的坐标(客户端、页面和屏幕)。

.trigger('mousemove', {clientX: 100, clientY: 100, screenX: 100, screenY: 100, pageX: 100, pageY: 100 })

不妨试试这个:

cy.get("my element")
.trigger("mouseover")
.trigger("mousedown", { which: 1})
.trigger("mousemove", {clientX: 100, clientY: 100, screenX: 100, screenY: 100, pageX: 100, pageY: 100 })
.trigger("mouseup", { which: 1 })

(您也不需要在 mousemove 中添加“which”,因为上一个命令仍然按下左键)

  • 刚刚在代码的第 2 行发现了一个类型, .trigger("mouseover") 中缺少一个“r”,但我怀疑这会导致错误
  • 我认为它可能会在第二个想法中完成这项工作!干杯!!
  • 很好,我记得几周前在类似的问题上花了很多时间
  • 好吧,它适用于我进行的另一项测试,但由于某种原因,这个特定的测试仍然出现同样的问题。(试图找出原因)
  • 我在 mousemove 事件中也有问题,我尝试按照 {clientX: 100, clientY: 100, screenX: 100, screenY: 100, pageX: 100, pageY: 100 } 的建议添加所有可能的坐标,但不幸的是这不起作用。还有其他建议吗?