【问题标题】:Puppeteer: Replacing innerHTML inside the same selectorsPuppeteer:在相同的选择器中替换 innerHTML
【发布时间】:2019-11-26 10:54:46
【问题描述】:

使用 puppeteer 截屏时,需要使用 .menu__link 类的动态元素将 innerHTML 更改为存根。

我使用 BackstopJs puppet/onReady.js

当我尝试这个时,只有页面上的第一个元素被替换:

module.exports = async (page) => {
    const myLocalValue = "Test";
    const tweets = await page.$$('.menu__link');


    for (const tweet of tweets) {
        await page.$eval('.menu__link', (el, value) => el.innerHTML = value, myLocalValue)
    }
};

而且这段代码根本不起作用:

module.exports = async (page) => {
    const myLocalValue = "Test";
    const tweets = await page.$$('.menu__link');


    for (const tweet of tweets) {
        await page.$eval(tweet, (el, value) => el.innerHTML = value, myLocalValue)
    }
};

请告诉我如何使用 puppeteer 为所有 .menu__link 替换整个页面上的 innerHTML

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:

    您可以使用$$eval

    await page.$$eval('. menu__link', (links, value) => links.forEach(el => el.innerHTML = value), 'myLocalValue');
    

    【讨论】:

    • 先生,非常感谢您。它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2012-08-14
    相关资源
    最近更新 更多