Cypress: изменение размера / перетаскивание элементов

#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.