【问题标题】:Navigate context menu with nightwatch.js?使用 nightwatch.js 导航上下文菜单?
【发布时间】:2021-04-30 17:52:56
【问题描述】:

我正在使用 nightwatchjs,并且在选择文本和触发右键单击以及导航我构建的上下文菜单时遇到了一些困难。这张图片是我试图实现的一个例子。选择 1957 文本,右键单击,向下导航到工具包,然后向右导航,然后再次向右,然后单击搜索区域。

我的 nightwatchjs 代码如下:

    it('Api test call', function (browser) {
        browser
            .url('http://sandbox.com/apiTest.html')
            .pause()
        browser.expect.element('#zoneId').text.to.equal('1957')
        .moveToElement('#zoneId')
        .mouseButtonClick('right')
        .keys(browser.Keys.DOWN_ARROW)
        .keys(browser.Keys.DOWN_ARROW)
        .keys(browser.Keys.DOWN_ARROW)
        .keys(browser.Keys.DOWN_ARROW)
        .keys(browser.Keys.DOWN_ARROW)
        .keys(browser.Keys.RIGHT_ARROW)
        .keys(browser.Keys.RIGHT_ARROW)
        .end();
    });

现在它不起作用,它只是加载页面但没有选择任何内容并且导航不会发生。 任何人都可以告诉我这是否可行,或者我怎样才能让它发挥作用? 谢谢。

【问题讨论】:

  • 测试成功执行到哪一步?
  • 直到 moveToElement,我得到类似Error: Unknown property: "moveToElement"的错误
  • 您使用的是哪种浏览器?
  • chrome 浏览器 v 90.0.4430

标签: javascript testing nightwatch.js nightwatch


【解决方案1】:

你可以试试这个。我已将browser.expect.element('#zoneId').text.to.equal('1957') 替换为.assert.containsText('#zoneId', '1957')。并且还为moveToElement添加了xoffset和offset。

it('Api test call', function(browser) {
  browser
    .url('http://sandbox.com/apiTest.html')
    .assert.containsText('#zoneId', '1957')
    .moveToElement('#zoneId', 10, 10)
    .mouseButtonClick('right')
    .pause(1000)
    .keys(browser.Keys.DOWN_ARROW)
    .pause(1000)
    .keys(browser.Keys.DOWN_ARROW)
    .pause(1000)
    .keys(browser.Keys.DOWN_ARROW)
    .pause(1000)
    .keys(browser.Keys.DOWN_ARROW)
    .pause(1000)
    .keys(browser.Keys.DOWN_ARROW)
    .pause(1000)
    .keys(browser.Keys.RIGHT_ARROW)
    .pause(1000)
    .keys(browser.Keys.RIGHT_ARROW)
    .end();
});

【讨论】:

  • 谢谢,我添加了该代码,它确实可以右键单击(虽然不是在 1957 年)。但是,向下箭头键似乎不起作用。这是它的外观和停止i.ibb.co/ygLH6Yc/Screen-Shot-2021-04-30-at-2-46-34-PM.png
  • 调整 x 偏移和 y 偏移以到达您的元素并在键盘按下之间添加一些暂停。更新了代码。请参考此 URL nightwatchjs.org/api/moveToElement.html#apimethod-page 以了解 x 和 y 偏移的工作原理。
  • 是的,似乎可以工作并选择正确的值,右键单击也可以,但 DOWN_ARROW 键不起作用。这就是它停止的方式i.ibb.co/PmpnqJD/Screen-Shot-2021-04-30-at-3-01-13-PM.png
  • 你能用.keys(browser.Keys.ARROW_DOWN)代替.keys(browser.Keys.DOWN_ARROW)
  • 刚刚尝试过 ".keys(this.Keys.ARROW_DOWN)" & ".keys(this.Keys.DOWN_ARROW)" 并在控制台触发错误消息 "TypeError: Cannot read property 'DOWN_ARROW '未定义的"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多