Вы не получаете ручки элемента. Вы только возвращаете их innerText
значение.
Что вы можете сделать, это сначала получить все элементы, а затем выполнить итерацию по ним следующим образом:
const elements = await page.$$('#mainsection a');
for (const el of elements) {
const innerText = await page.evaluate(el => el.innerText, el);
if (innerText.toUpperCase() == 'THEONEIWANT') {
await el.click();
}
}
Это будет проходить по всем элементам один за другим, читать их значение innerText
, проверять, соответствует ли условие и затем щелкать по нему.
Оптимизация
Это может занять некоторое время, если ссылок много. Вы можете улучшить этот код, используя селектор, который совпадает на основе искомого текста (см. этот вопрос для получения дополнительной информации) или с помощью выражения, подобного следующему, чтобы проверить, соответствует ли условие на сторона клиента. Это сделает проверку для всех элементов сразу:
const shouldElementBeClicked = page.evaluate((...args) => args.map(el => el.innerText === '...'), ...elements);
Это приведет к массиву с логическим значением, указывающим, удовлетворяет ли элемент в той же позиции в массиве elements
условию.