在锚点上的Nightwatch点击事件不在边缘

时间:2018-01-31 11:05:05

标签: javascript selenium testing

我在Nightwatch中编写了一个命令来测试接管元素。 该测试在Chrome中运行良好,但不在Edge中。

我注意到的是前两个锚元素的点击功能未被触发。如果我手动点击它们按预期关闭它们。 click事件适用于DOM中较低的按钮元素。

这是我的命令:

exports.command = function(client) {
    client.elements('css selector', '[data-action="takeover"]', function(elements) {
      elements.value.forEach(function(element){
        client.elementIdAttribute(element.ELEMENT, 'data-rel', function(attribute) {

          client
          .click('css selector', "[data-rel='"+attribute.value+"']")
          .waitForElementVisible(''+attribute.value+'', 5000)
          .collapsibleInTakeover(attribute.value, client)
          .keys(client.Keys.ESCAPE)
          .pause(250)
          .waitForElementNotVisible(''+attribute.value+'', 5000)
        });
      });
    });
    return;
};

1 个答案:

答案 0 :(得分:0)

它似乎是Edge中的一个错误。 我能够使用thirth-party模块nightwatch-custom-commands-assertions

解决问题

替换:

.click('css selector', "[data-rel='"+attribute.value+"']")

使用:

.jqueryClick("[data-rel='"+attribute.value+"']")

.jqueryClick是由maxgalbu编写的自定义nightwatch命令,它解决了我的问题。