javascript - 使用函数 getElementsByTagName 获取具有动态 ID 的元素的问题 - NightwatchJS

标签 javascript automated-tests nightwatch.js getelementsbytagname

我正在尝试使用 NoghtwatchJS 进行自动化测试。

我正在处理一个包含具有动态 ID 的元素的 UI。我必须点击一个特定的元素。我正在考虑在 mycase 中使用 gelElementByTagName('aria-label')。这是我使用的代码:

var labels,i
labels = getElementsByTagName('aria-label');
    for ( i = 0; i < labels.length; i++) {
        if (labels[i].htmlFor == 'Next') {
            var elem = getElementById(labels[i].htmlFor)
        };
    };

我有未定义的问题元素:

ReferenceError: getElementsByTagName is not defined

你知道我该如何解决这个问题吗?

我试过了:

getElementsByTagName('aria-label')
element.getElementsByTagName('aria-label')
document.getElementsByTagName('aria-label')

最佳答案

在 Nightwatch 中实现此功能的唯一方法是使用 execute命令

你的代码应该是这样的:

browser.execute(function() {
            return document.getElementsByTagName('aria-label').length;

        }, function(result) {
            for (let i = 0; i < result.value; i++) {
                if (labels[i].htmlFor == 'Next') {
                   let elem = getElementById(labels[i].htmlFor)
      };
  });

关于javascript - 使用函数 getElementsByTagName 获取具有动态 ID 的元素的问题 - NightwatchJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58715364/

相关文章:

testing - 如果您没有从 process.env 获得 url,如何取消测试执行

javascript - Nightwatch - 获取 DOM 中重复类的元素

javascript - 使用 nightwatch.js 按顺序调整测试

javascript - 如何使用 nightwatch.js 将值设置为 textarea 属性

javascript - 将来自多个 div 的代码转换为使用 Ajax

javascript - 从 json 元素获取属性

javascript - 使用 FireBug 跟踪在 Javascript 中设置变量的时间/位置

java - Selenium -Java : How to get absolute path to the file

ruby-on-rails - 测试和规范之间有什么区别?

javascript - 如何使用 js 和 selenium 检查 Select Web 元素是否包含某些文本?