Кукловод - переменная не передается в функции оценки

У меня есть функция, в которой я пытаюсь получить весь текст дочерних элементов из родительского узла.

getTextsForChildElements: async function (selector) {
    const data = await page.evaluate(() => {
        const tds = Array.from(document.querySelectorAll(selector))
        return tds.map(td => td.textContent)
    },selector);
    console.log(data);
},

Однако я вижу selector is not definederror.

Пытался использовать этот вопрос в качестве справки, но не решил. любая идея, как я могу передать селектор.


person Saurabh    schedule 12.11.2019    source источник


Ответы (1)


Анонимная функция, которая является первым аргументом page.evaluate, должна принимать аргументы, которые вы передаете. Правильно, нет, это без всяких аргументов. Измените его, как показано ниже:

getTextsForChildElements: async function (selector) {
    const data = await page.evaluate((selector) => {
        const tds = Array.from(document.querySelectorAll(selector))
        return tds.map(td => td.textContent)
    },selector);
    console.log(data);
},
person yeniv    schedule 13.11.2019
comment
спасибо @yeniv .. это помогло, и я смог заставить его работать - person Saurabh; 13.11.2019