我有一个如此定义的链接:
<a onclick={() => {console.log('Hello')}} />
我想检查Nightwatch中的onClick
函数代码(可能是一个字符串),以检查单词Hello
是否在代码中。不同的链接可以在console.log
中有不同的文本。上面的那个有Hello
而另一个可以有Hi
。所以我希望能够检查该代码以检查哪个具有特定文本。
我尝试这样做,但result
变量不包含onClick
处理程序代码:
browser.element('xpath', 'SOME_XPATH', function(result) {
console.log('RESULT OBJECT: ', result);
});
就在这里! onclick
表示您指定的锚点(<a>
)的上下文中的属性。所以你可以使用getAttribute或getAttributeById。
扩展您的代码,它应该看起来像这样:
return browser.element('xpath', 'yourXPathSelector', (result) => {
browser.elementIdAttribute(result.value.ELEMENT, 'onclick', (res) => {
console.log('RESULT OBJECT: ', res.value);
// > do your Hi|Hello check here <
});
});
我认为最简单,最懒惰的方法是使用Nightwatch的Expect API立即断言接受标准:
browser.expect.element('a').to.have.attribute('onclick')
.which.matches(/[Hi|Hello]/);