javascript - nightwatch 中有没有办法访问按钮的 onClick 处理程序代码?

标签 javascript nightwatch.js

我有一个像这样定义的链接:

<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/

相关文章:

javascript - 填充缺失数据的数组

javascript - 删除表单中动态创建的元素

javascript - Night-watch.js 安装错误?

nightwatch.js - 如何动态加载launch_url并为其添加相对路径

javascript - 使用 NightwatchJS 模拟文件上传 (DropzoneJS)

javascript - 从元素 ID 获取 Json 元素值

javascript - 从 'lib' 导入 {fn1} 与从 'lib' 导入 fn1

javascript - TypeORM 插入与relationId

javascript - 构建器模式不向对象添加值

javascript - 如何在 NightwatchJS 中对元素列表进行断言