#javascript #cypress
Вопрос:
Я пытаюсь изменить размер элемента поля, щелкнув в правом нижнем углу и перетащив его вниз на несколько пикселей. Пример того, что у меня есть, но не работает:
it("tests resizing elements", () =gt; { cy.findByText(/zoom/i) .nextAll(1) .invoke("text") .then(($text) =gt; { let zoom = parseInt($text.split("%")[0]); let objects; cy.window() .then(($win) =gt; { objects = $win.canvas.getObjects(); }) .then(() =gt; { 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); }); }); });
То, что код в настоящее время делает, — это нажимает на нужное место, перетаскивает объект и затем отпускает, но он перемещает объект вместо того, чтобы изменять его размер.
Любая помощь будет очень признательна.
Ответ №1:
Попробуйте запустить изменение размера напрямую:
cy.getCanvas().trigger('resize',x,y);
Ответ №2:
Наконец-то понял, что мне нужно. Проблема заключалась в том, что на элемент нужно было нажать. Поэтому заменив последний бит моего кода на
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()
этого было недостаточно, и это должно было быть mousedown
mouseup
и.)
Что помогло мне понять, что это было необходимо, так это слежка за событиями, происходящими при выполнении этого вручную.
Комментарии:
1. Я пробовал это, но у меня ничего не получается. Я также хочу перетащить стрелку справа внизу элемента раскрывающегося списка cdk.