点击量角器中元素的给定坐标

Clicking on given coordinates of element in protractor

本文关键字:坐标 元素 量角器      更新时间:2023-10-29

我想点击canvas元素的特定位置,所以我编写了以下Protractor代码:

var canvas = element(by.id("canvas"));
var clickCanvas = function(toRight, toBottom) { 
  browser.actions()
    .mouseMove(canvas, -toRight, -toBottom)
    .click();
}

toRight/toBottom是应该单击的像素数,相对于画布的左上角。

但是,单击似乎不会在给定的坐标下执行。我从软件质量保证&测试堆栈交换。

你能确认这个片段有效吗
你能提出替代方案吗?

我完成了这项工作,传递了一个表示坐标的对象作为mouseMove:的第二个参数

var canvas = element(by.id("canvas"));
var clickCanvas = function (toRight, toBottom) { 
    browser.actions()
      .mouseMove(canvas, {x: toRight, y: toBottom})
      .click()
      .perform();
};

您错过了.perform()

browser.actions().mouseMove(canvas, -toRight, -toBottom).click().perform();

我在测试中使用了几次,并确认它能正常工作

在这种情况下,您错过了perform()调用:

 browser.actions()
  .mouseMove(canvas, -toRight, -toBottom)
  .click();  // < no .perform() HERE

这是在Protractor/WebDriverJS中编写e2e测试时常见的错误之一。

为了防止这些错误发生,ESLint有一个eslint-plugin-protractor插件,如果browser.actions()链上没有调用perform(),它会发出警告。