Сообщение от Nexus
|
У вас в логике работы дырень.
Текущий код будет проверять только первый элемент выборки на соответствие его контента значению эл. массива basename.
Попробуйте так:
let baseName = "apple,pineapple,translate".split(',')
let i = 0
let n = 0
let nodes = document.getElementsByClassName('name');
console.log('Найдено элементов: ' + nodes.length);
start()
function start() {
for (i; i < nodes.length; i++) {
console.log(nodes[i].innerText + ' == ' + baseName[n] + ' -> ' +
(nodes[i].innerText == baseName[n] ? 'true' : 'false'));
if (nodes[i].innerText == baseName[n]) {
console.log('CLICK');
nodes[i].click();
break; //Если нужно кликнуть только по одному элементу
}
}
if (n < baseName.length - 1) {
i = 0
n++
console.log('Restart');
start()
}
}
|
В логике все хорошо, поскольку нужно проверить несколько элементов. С break скрипт начинает отлично работать, но это не то что нужно, поскольку надо кликнуть по нескольким элементам.
Кстати прошу заметить, ваш код тоже не работает, если убрать оттуда break