javascript - 是否可以在创建屏幕截图之前使用 Puppeteer 修改 DOM 中的元素?

标签 javascript node.js linux ubuntu puppeteer

我遇到了一个问题,我创建了一个相当简单的 Node 进程来捕获屏幕截图。是否可以在获取屏幕截图之前使用 Puppeteer 更改 HTML 元素的 innerText

我已经成功使用 Puppeteer 在身份验证字段中键入文本并登录到站点,但我想知道是否有类似的方法可以让我更改特定元素中的文本(使用 id 或类名)。

我正在使用的屏幕截图代码示例:

const puppeteer = require('puppeteer');
 (async () => {
    const browser = await puppeteer.launch()
    const page = await browser.newPage()
    await page.goto('https://google.com')
    await page.screenshot({path: 'google.png'})
    await browser.close()
 })()

在这个例子中,我想知道我是否可以更改一个元素的文本内容,例如 ID 为“lga”的 div ...例如添加一个文本字符串。

Puppeteer 可以吗?

否则,它工作得很好。我只需要在我正在执行屏幕截图的页面中插入一些文本。我仅在 Ubuntu 16.04 机器和 Node 版本 9、Puppeteer 版本 1.0.0 上使用命令行。

最佳答案

你可以在屏幕之前这样做

 await page.evaluate(() => {
    let dom = document.querySelector('#id');
    dom.innerHTML = "change to something"
 });

关于javascript - 是否可以在创建屏幕截图之前使用 Puppeteer 修改 DOM 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48513066/

相关文章:

linux - 使用其他服务器中 createrepo 创建的本地 yum 存储库

javascript - chrome.tabs.captureVisibleTab 在 chrome.tabs.update 之后作为同步回调失败?

javascript - JSF 1.2 : How to open a new window and catch the fact that user tried it

javascript - Node 定义我需要在模块中使用的唯一变量

linux - bash 脚本中的 For 循环不适用于 nohup

linux - mod_rewrite REQUEST_URI 混淆

javascript - 动态改变分离器的高度

带有 Jest 的组件中的javascript模拟导入

node.js - 使用舰队与 Nodejs 应用程序部署

javascript - 如何在 JavaScript promise 字符串的 .then 函数中调用带参数的函数?