javascript - 如何在柏树中拖放 ul > li 元素

标签 javascript testing automated-tests cypress

在系统中,自动化拖放功能需要考虑两个方面。一个叫做“时间表”的东西在 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");

但是最终上面的代码并没有执行成功。该元素未自动拖放。如果有人有解决此问题的想法,我们将不胜感激。

最佳答案

使用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);

关于javascript - 如何在柏树中拖放 ul > li 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454162/

相关文章:

javascript - 如何平移 THREE.PointCloud 对象中的顶点?

ruby-on-rails - capybara fill_in 编号字段

javascript - 当鼠标悬停在一个特定的 div 上时防止页面滚动

Javascript - 关于对象

java - TestNG 嵌套测试或测试步骤

java - IntelliJ 或 Eclipse 将方法的所有用法重构为不同类/接口(interface)上的方法

sql-server-2008 - 自动化 SQL Server 单元测试

javascript - Protractor :你能在全局延迟 WebElement.sendKeys() onPrepare 吗?

javascript - 如何判断父节点是否没有子节点

c# - Form.ShowDialog() 不显示启用调试的窗口