我在Nightwatch中编写了一个命令来测试接管元素。该测试在Chrome中工作正常,但在Edge中不起作用。
我注意到的是,前两个锚元素上的单击功能没有被触发。如果我手动单击它们,它会按预期关闭它们。单击事件确实适用于 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;
};
这似乎是 Edge 中的一个错误。我能够使用第三方模块夜巡-自定义-命令-断言解决问题
取代:
.click('css selector', "[data-rel='"+attribute.value+"']")
跟:
.jqueryClick("[data-rel='"+attribute.value+"']")
.jqueryClick是由maxgalbu编写的自定义夜巡命令,它解决了我的问题。