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

Protractor 量角器:如何在不使用元素的情况下拖放?,protractor,Protractor,通常,拖放操作使用两个元素完成 但是,如果我有一个动态网格,我想通过单击按住并拖动它然后释放来选择它的一部分,该怎么办呢。(类似于拖放) 我已经能够获得x和y坐标,但我不确定如何在没有元素的情况下使其工作。看起来需要元素。 使用元素(body)后,我能够进行拖放操作。var offsetx=dndoffset.x; var offsetx = dndoffset.x; var offsety = dndoffset.y; browser.waitForAngular(); this.getTar

通常,拖放操作使用两个元素完成

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


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

看起来需要元素。 使用元素(body)后,我能够进行拖放操作。

var offsetx=dndoffset.x;
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();
});
var offsety=dndoffset.y; browser.waitForAngular(); this.getTargetIndex(,函数(targetIndex){ var targetElement=element.all(by.repeater()).get(targetIndex); targetElement.getLocation().then(函数(位置){ offsetx=数学圆(offsetx+location.x); browser.actions().mouseMove() .mouseDown() .mouseMove(targetElement) .mouseMove(targetElement,{x:offsetx,y:offsety}) .mouseUp().perform(); }); browser.waitForAngular(); });
上面是我用来拖放的代码片段。DOM中总是有元素(即使是动态的)。你必须选对一个放在那里

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