赛普拉斯:调整大小/拖动元素

Cypress: resizing / dragging elements

我正在尝试通过单击右下角并将其向下拖动几个像素来调整框元素的大小。例如我有但不起作用:

    it("tests resizing elements", () => {
        cy.findByText(/zoom/i)
            .nextAll(1)
            .invoke("text")
            .then(($text) => {
                let zoom = parseInt($text.split("%")[0]);
                let objects;
                cy.window()
                    .then(($win) => {
                        objects = $win.canvas.getObjects();
                    })
                    .then(() => {
                        cy.getSidebarButton("Edit mode").click();
                        // x and y are relative to the zoom percentage
                        let x =
                            ((objects[objects.length - 1].left +
                                objects[objects.length - 1].width) /
                                100) * zoom;
                        let y =
                            ((objects[objects.length - 1].top +
                                objects[objects.length - 1].height) /
                                100) * zoom;
                        cy.getCanvas()
                            .trigger("mousedown", x, y)
                            .trigger("mousemove", x + 20, y + 25)
                            .trigger("mouseup", x + 20, y + 25);
                    });
            });
    });

代码当前所做的是单击正确的位置,拖动对象然后释放,但它移动对象而不是调整对象的大小。

如有任何帮助,我们将不胜感激。

尝试直接触发调整大小:

cy.getCanvas().trigger('resize',x,y);

终于明白我需要什么了。问题是需要单击该元素。所以用

替换我的代码的最后一位
                        cy.getCanvas()
                            .trigger("mousedown", x, y)
                            .trigger("mouseup", x, y)
                            .trigger("mousedown", x, y)
                            .trigger("mousemove", x + 50, y + 55)
                            .trigger("mouseup", x + 50, y + 55);

解决了我的问题。 (令我惊讶的是,.click() 还不够,必须是 mousedownmouseup。)

帮助我意识到这是必要的是监视手动执行时触发的事件。