【问题标题】:How to identify a dynamic id for drag n drop in cypress如何识别用于在柏树中拖放的动态 id
【发布时间】:2021-07-23 10:57:16
【问题描述】:

我正在使用这个 plagin https://github.com/4teamwork/cypress-drag-drop

这里 id 是动态生成的 - 因此使用 id 无法识别。有什么替代方法? cy.get('itemlocation').drag('目标位置') 在这里我无法识别目标位置,因为 id 是动态的 :( 它实际上是一个堆栈面板,它有 3 列带有动态 ID。全图为click for detail

【问题讨论】:

    标签: drag-and-drop cypress


    【解决方案1】:

    有几种可能,

    • .drag('.cdk-drop-list') - 如果只有一个放置目标

    • .drag('.cdk-drop-list:eq(2)') - 第三个放置目标

    • .drag('designer-stack-panel:nth-child(1)') - 只有一个堆栈面板,它是第一个孩子

    • .drag('designer-stack-panel:eq(1):nth-child(1)') - 第二个堆栈面板,第一个孩子

    参考:eq(), :nth-child()

    【讨论】:

    • 它实际上是一个堆栈面板,它有 3 列具有动态 ID。查看添加的完整图片
    • 所以:nth-child() 将有 1,2 或 3,具体取决于您要删除的位置。
    • .drag('designer-stack-panel:nth-child(X)') 在这里使用 0,1,2 代替 x,没有任何效果!
    • 使用 .drag('designer-stack-panel:nth-child(X)') 测试用例运行,没有错误显示,但它不能拖动项目。保持原样。
    • cy.get('.field-label').drag('.cdk-drop-list.flex-grow.container.list.flex-column.ng-star-inserted:eq( 0)') 可以选择目标堆栈但没有发生拖动!知道为什么吗? @Hiram K. Hackenbacker
    猜你喜欢
    • 2019-09-15
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2020-06-28
    • 2022-11-23
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多