Проблема с получением элемента с динамическим идентификатором с помощью функции getElementsByTagName - NightwatchJS - PullRequest
2 голосов
/ 05 ноября 2019

Я пытаюсь сделать автоматический тест с использованием NoghtwatchJS.

Я имею дело с пользовательским интерфейсом, который содержит элементы с динамическими идентификаторами. Я должен нажать на конкретный элемент. Я думаю об использовании gelElementByTagName('aria-label') в mycase. Это код, который я использовал:

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 не определено

У васесть идеи, как я мог решить эту проблему?

Я пробовал:

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

1 Ответ

0 голосов
/ 06 ноября 2019

Единственный способ выполнить эту работу в Nightwatch - использовать execute comand

Ваш код должен выглядеть примерно так:

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)
      };
  });
...