【问题标题】:Protractor: How to Drag and Drop without using an element?量角器:如何在不使用元素的情况下拖放?
【发布时间】:2017-05-11 17:34:30
【问题描述】:

通常,拖放是使用 2 个元素完成的。

但是,如果我有一个动态网格,我想通过单击并拖动它然后释放来选择它的一部分。 (类似于拖放)

我已经能够获得 x 和 y 坐标,但我不确定如何在没有元素的情况下使其工作。

【问题讨论】:

    标签: protractor


    【解决方案1】:

    看起来需要一个元素。 使用元素(body)后,我就可以进行拖放了。

    【讨论】:

      【解决方案2】:
      var offsetx = dndoffset.x;
      var offsety = dndoffset.y;
      browser.waitForAngular();
      this.getTargetIndex(<ObjectToBeDragged>,function (targetIndex) {
        var targetElement = element.all(by.repeater(<ng-repeat value>)).get(targetIndex);
        targetElement.getLocation().then(function (location) {
          offsetx = Math.round(offsetx + location.x);
          browser.actions().mouseMove(<ObjectToBeDragged>)
            .mouseDown()
            .mouseMove(targetElement)
            .mouseMove(targetElement, {x: offsetx, y: offsety})
            .mouseUp().perform();
        });
        browser.waitForAngular();
      });
      

      以上是我用来拖拽的sn-p。你总是在 DOM 中有元素(即使它是动态的)。您必须选择正确的并将其放置在那里。

      由于我们有 ng-repeat,我们使用 by.repeater() 来动态定位元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-15
        • 2023-03-31
        • 2021-04-23
        • 2013-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多