Javascript 为什么drag drop没有按照cypress.io中的预期工作?

Javascript 为什么drag drop没有按照cypress.io中的预期工作?,javascript,automated-tests,cypress,browser-automation,Javascript,Automated Tests,Cypress,Browser Automation,我正在尝试在网站上自动执行一个简单的拖放场景 我将按照cypress doc中提供的方法进行操作 我的示例测试用例是: cy.visit("https://gojs.net/latest/samples/htmldragdrop.html") cy.get('#paletteZone .draggable').first().trigger('mousedown', { which: 1 }) .trigger('mousemove', { cl

我正在尝试在网站上自动执行一个简单的拖放场景

我将按照cypress doc中提供的方法进行操作

我的示例测试用例是:

 cy.visit("https://gojs.net/latest/samples/htmldragdrop.html")
      cy.get('#paletteZone .draggable').first().trigger('mousedown', { which: 1 })
      .trigger('mousemove', { clientX: 500, clientY: 500 }) 
      .trigger('mouseup', { force: true })
运行相同的程序后:

cypress聚焦于触发器mousedown我想拖动的元素,但在mousemove的步骤上——当我使用“before”和“after”状态检查相同的元素时,什么都没有发生。我们尝试了不同的放置位置,只是为了确保它与x,y坐标问题无关,但徒劳无功。请帮忙

编辑1:可以使用cypress网站上的插件(即@4tw/cypress拖放)拖放相同的内容。这在同一个网站上非常有效

  cy.get('#paletteZone .draggable').first().drag('canvas','center') 
但是,当我在不同的网站上尝试相同的插件时(仅用于测试目的,我不拥有相同的插件),该插件也存在问题。

在实际的网站上,左侧的可拖动项目被删除并放置在右侧,但在运行我的代码之后——虽然项目被添加到右侧,但它们不会从左侧div中删除。这里有什么需要添加的吗(在我的截图中-DragagTable 1在代码运行后不应该出现)


这可能是因为您没有明确地将
目标指定给\u drop
。查看站点的HTML,源元素和目标元素是两个不同块的一部分,因此:
cy.get('#paletteZone.draggable').first().trigger('mousedown',{which:1}).trigger('mousemove',{clientX:500,clientY:500});cy.get(#myDiagramDiv).click().trigger(“mouseup”,{force:true})
@AlexIzbas:尝试了建议的方法,但再次在mousemove步骤->之前和之后显示焦点,如我的屏幕截图所示。测试完成后,什么也没有发生。
  cy.visit("https://www.seleniumeasy.com/test/drag-and-drop-demo.html")
        //cy.viewport(1600, 800)
        cy.get('#todrag span').first().drag('#mydropzone','center')
        cy.get('#todrag span').first().drag('#mydropzone','center')
        cy.get('#todrag span').first().drag('#mydropzone','center')
        cy.get('#todrag span').first().drag('#mydropzone','center')