使用 nightwatch.js 导航上下文菜单?

问题描述

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

enter image description here

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

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

解决方法

你能试试这个吗?我已将 browser.expect.element('#zoneId').text.to.equal('1957') 替换为 .assert.containsText('#zoneId','1957')。并且还向 moveToElement 添加了 xoffset 和偏移量。

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