量角器:如何在不使用元素的情况下拖放?

时间:2017-03-27 11:57:45

标签: protractor

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

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

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

2 个答案:

答案 0 :(得分:0)

看起来像是一个元素。 使用元素(正文)后,我能够进行拖放工作。

答案 1 :(得分:0)

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();
});

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

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