Как перетаскивать ul> li элементы в кипарис - PullRequest
2 голосов
/ 05 июня 2019

В системе есть две области, которые необходимо учитывать при автоматизации функции перетаскивания.Одна вещь, которая называется «расписанием», находится в div, а другая - в ul > li.Вот пример html расписания,

<div class="time-update__top-block">

В тестовых сценариях я использовал этот способ для перетаскивания следующим образом:

cy.get(".time-update-block", { timeout: 60000 })
      .trigger("mousedown", { force: true })
      .wait(2000);
    cy.get(
      '.anotherElement',
      { timeout: 60000 }
    )
      .trigger("mousemove", { force: true }, "topLeft")
      .wait(2000);
    cy.get(
      '.anotherElement',
      { timeout: 60000 }
    )
      .trigger("mouseup", { force: true }, "topLeft")
      .wait(2000);

Выше код был успешно выполнен, и элемент былперетаскивали и отбрасывали так, как я хотел.

Пример HTML-кода другого пользователя:

 <ul class="schedule-movie-list">
    <li class="undefined schedule-movie-list__item " title="Drag me!" draggable="true">Name1</li>
    <li class="undefined schedule-movie-list__item " title="Drag me!" draggable="true">Name2</li>
    <li class="undefined schedule-movie-list__item " title="Drag me!" draggable="true">Name3</li></ul>

В тестовых сценариях я использовал этот способ для перетаскивания следующим образом:

cy.get(".schedule-movie-list > .schedule-movie-list__item", {
      timeout: 60000
    })
      .eq(1)
      .click()
      .trigger("mousedown", { force: true });

    cy.get(
      '.anotherElement2',
      { timeout: 60000 }
    ).trigger("mousemove", { force: true }, "topLeft");
    cy.get(
      '.anotherElement2',
      { timeout: 60000 }
    ).trigger("mouseup", { force: true }, "topLeft");

Но в конечном итоге приведенный выше код не был успешно выполнен.Элемент не был перетащен автоматически.Если у кого-то есть идея, чтобы решить это высоко ценится.

1 Ответ

0 голосов
/ 25 июня 2019

Используя dataTransfer const, мы можем получить то, что нам нужно достичь;

describe("Main Page", () => {
  const dataTransfer = new DataTransfer;
  it("Drag & Drop elements", () => {
      cy.get('.schedule-movie-list > .schedule-movie-list__item')
        .first()
        .trigger('dragstart', { dataTransfer });

      cy.get(schedulerPerformancePanel)
        .first()
        .trigger('drop', { dataTransfer })
        .wait(3000);
...