javascript - Puppeteer:在相同的选择器中替换 innerHTML
问题描述
使用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 的人替换整个页面上的innerHTML.menu__link
?
解决方案
您可以使用$$eval
await page.$$eval('. menu__link', (links, value) => links.forEach(el => el.innerHTML = value), 'myLocalValue');
推荐阅读
- rxjs - RxJs 6:管理数组迭代和延迟
- node.js - Heroku Node.js 应用程序上的 WebSocket 和多个 Dyno 使用 Redis
- android - 嗨,我在使用意图向特定群组发送 whatsapp 消息时遇到问题
- python - 使用经纬度计算两点之间的距离时结果的巨大差异
- ios - 手机设置配置后如何从同一屏幕打开 Swift 应用程序
- android - Android - 如何更改默认加载屏幕(屏幕截图)?
- android - 如何在 JNA 框架中使用 C 编码在 android 模拟器控制台上打印
- powershell - In PowerShell, is it possible to create an alias whose name has a space in it?
- ios - 为具有灵活形状的 CoreML 2 模型指定输入/输出尺寸
- python - 与编辑器链接到终端的任何其他设置相比,Jupyter 笔记本有什么优势