Puppeteer innerHTML页面评估返回空错误和未定义错误的函数

编程入门 行业动态 更新时间:2024-10-10 18:21:49

Puppeteer innerHTML页面评估返回空<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误和未定义错误的函数"/>

Puppeteer innerHTML页面评估返回空错误和未定义错误的函数

等待页面。$ eval('。class1'+变量+'img.class2',el => el.ParentElement.innerHTML ='替换文本');

我也尝试过

等待page.evaluate((变量)'.class1'+变量+'img.class2',el => el.ParentElement.innerHTML ='替换文本');

我知道所有包含此函数的if语句都是正确的,并且在检查器中,.class1VARIABLE img.class2选择的.ParentElement返回适当的元素。

但是,当我运行第一个函数时,发现未定义的ParentElement时会出错,而当我运行第二个函数时,会发现找到null的ParentElement时出错。是什么赋予了?我是否无法正确传递变量?我在评估错误的DOM吗? 'variable'做正确的事,在for语句中增加,并且我已经证明在将我带到这里的逻辑中,使用console.log调试语句是正确的。我什至尝试对函数内部的变量进行硬编码,例如

等待page.evaluate(()'.class1VARIABLE img.class2',el => el.ParentElement.innerHTML ='替换文本');

我什至无法理解它将如何失败,并且它也因null或未定义的错误而崩溃。

我的智慧尽在这里,Kinda。

P.S。如果重要,则图像的ParentElement为td。

回答如下:

有关如何使用.class选择器更改元素的innerHTML的示例:

'use strict';

const html = `
  <!doctype html>
  <html>
    <head><meta charset='UTF-8'><title>Test</title></head>
    <body><p class='test'>Text.</p></body>
  </html>`;

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch({ headless: false });
    const [page] = await browser.pages();

    await page.goto(`data:text/html,${html}`);

    const pSelector = '.test';
    const newHTML = '<i>New text.</i>';

    await page.evaluate((selector, html) => {
      document.querySelector(selector).parentElement.innerHTML = html;
    }, pSelector, newHTML);
  } catch (err) {
    console.error(err);
  }
})();

更多推荐

Puppeteer innerHTML页面评估返回空错误和未定义错误的函数

本文发布于:2024-05-07 14:59:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756807.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   函数   页面   未定义   Puppeteer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!