我有一个像这样定义的链接:
<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
表示您指定的 anchor 上下文中的属性 ( <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]/);
关于javascript - nightwatch 中有没有办法访问按钮的 onClick 处理程序代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54015777/