右键单击量角器

right click in protractor

我正在尝试使用量角器右键单击一个元素,该元素是 ag-grid 中的一个单元格。

我正在尝试使用我能找到的一些早期建议,唯一没有引发错误的是以下建议:

browser.actions().mouseMove(elementVar).perform();
browser.actions().click(protractor.Button.RIGHT).perform();

虽然它根本没有右键单击。

有什么建议吗?

找到那个问题的答案。我真的很接近,但是对于那些寻找这个问题的人来说,解决方案是这样的:

您传递给 mouseMove 函数的 elementVar 应该是所需的元素 location。这是什么意思? 例如,假设我们有一个名为 'el' 的元素,我们想要右键单击它,我们的代码需要像这样:

async function rightClick (el) {
    loc = el.getLocation();    //get the location of the element we want to click
    await browser.actions().mouseMove(loc).perform();   //takes the mouse to hover the element
    await browser.actions().click(protractor.Button.RIGHT).perform();    //performs the right click
};

webdriverJs api开始,你可以这样右击一个元素:

browser.actions()
    .click($('.myElm'), protractor.Button.RIGHT)
    .perform();

基于@Brine 的回答,我设法找到了一个没有 mousemove 东西或 Jquery 的方法。

import { protractor } from 'protractor/built/ptor';

const ele = element(by.id('my_element');
browser.actions().click(ele, protractor.Button.RIGHT).perform();

这肯定不是一个干净的解决方案,但如果您使用的是无头 chrome,上面的所有脚本都可以。 如果您使用的是普通 chrome 蚂蚁,上述解决方案不起作用,请尝试以下解决方法:

        await browser.actions().mouseMove(elementFinder).mouseDown().mouseMove(elementFinder).perform();

将此添加到我的 protractor.conf.js 对我有用:

{
  capabilities: {
    chromeOptions: {
      w3c: false
    }
  }
}

来自 https://github.com/angular/protractor/issues/5271