Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在创建屏幕截图之前,是否可以使用Puppeter修改DOM中的元素?_Javascript_Node.js_Linux_Ubuntu_Puppeteer - Fatal编程技术网

Javascript 在创建屏幕截图之前,是否可以使用Puppeter修改DOM中的元素?

Javascript 在创建屏幕截图之前,是否可以使用Puppeter修改DOM中的元素?,javascript,node.js,linux,ubuntu,puppeteer,Javascript,Node.js,Linux,Ubuntu,Puppeteer,我遇到了一个问题,我创建了一个相当简单的节点过程,捕获了一个屏幕截图。在获取屏幕截图之前,是否可以使用Puppeter更改HTML元素的innerText 我已经成功地使用Puppeter在身份验证字段中键入文本并登录到站点,但我想知道是否有类似的方法可以让我更改特定元素中的文本(使用id或类名) 我正在使用的屏幕捕获代码示例: const puppeteer = require('puppeteer'); (async () => { const browser = await

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

我已经成功地使用Puppeter在身份验证字段中键入文本并登录到站点,但我想知道是否有类似的方法可以让我更改特定元素中的文本(使用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等元素的文本内容。。。例如,添加文本字符串

木偶演员有可能吗


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

你可以在屏幕前使用

 await page.evaluate(() => {
    let dom = document.querySelector('#id');
    dom.innerHTML = "change to something"
 });
第页$eval() 在拍摄屏幕截图之前,可以使用更改元素的颜色:

await page.$eval('#example', element => element.innerText = 'Hello, world!');

await page.screenshot({
  path: 'google.png',
});

你能同时删除一个元素吗?@user1584421是的,
dom.parentNode.removeChild(dom)。是否可以将“更改为某物”作为传入的变量?这是怎么做到的?@TomMercer,你会改变循环中的参数吗?然后在page.evaluate函数之前分配新的值,并在其中使用它,可能作为字符串文本模板,如
dom.innerHTML=`${var}`