@historydev
Острая аллергия на анимешников

Почему функция click не видит даже прототип функции родителя?

Здравствуйте. Я пытаюсь передать index элемента по которому нужно кликнуть в функцию click пакета nightmare. Но она игнорирует переменные, константы, массивы, прототип функции в которой находится и я вообще без понятия почему. Подскажите пожалуйста как это можно решить.

function getPage(url, proxy) {
    const nightmare = Nightmare({
        show: true,
        switches: {
            'proxy-server': proxy[Math.floor(Math.random() * proxy.length)],
            'ignore-certificate-errors': false
        },
    });

    return nightmare
        .authentication('irp1010848', 'UT2092lpfs')
        .goto(url)
        .wait('.hot-list-container ul li')
        .evaluate(() => {
            const data = [...document.querySelectorAll('.hot-list-container ul li')];
            return data.map(el => el.innerHTML).map((el, i) => {
                return {
                    el: el,
                    status: el.split('').join('').indexOf('DYDX') !== -1 ? 0 : 1,
                    index: i+1
                }
            });
        })
        .click(`.hot-list-container ul li:nth-child(${/* Сюда пытаюсь передать, но безуспешно */}) a`)
        .catch(err => console.log(err))
}


Спасибо.
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
XanXanXan
@XanXanXan
Забрать возвращаемое значение из .evaluate() можно только через .then(), то есть: .evaluate().then((data => nightmare.click('')).

Гугл подсказал, что решить проблему можно ещё так:
- Делать клик (обычный) внутри .evaluate() на нужном элементе.
- Навесить на нужный элемент селектор через .evaluate() и делать клик уже без расчётов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы