首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >page.evaluate()中的代码不起作用

page.evaluate()中的代码不起作用
EN

Stack Overflow用户
提问于 2020-10-13 16:19:15
回答 2查看 1.1K关注 0票数 0

我想自动登录和从PowerBI网站获取文本数据使用傀儡。我能够成功地自动登录,但是,代码在page.evaluate中无法工作(它包含从网站获取文本数据的代码),这是代码。

代码语言:javascript
运行
复制
  col_headers=[] 
  await page2.evaluate(() => {
  var elements = document.getElementsByClassName("columnHeaders");
  for (var i = 0; i < elements.length; i++) {
    col_headers = elements[i].innerText;
  }});
  console.log(col_headers)

注意:

1)我尝试将console.log添加到函数中,以检查控件是否在其中。但是,也没有被执行

2)如果我在page.evaluate,中不包含代码,则代码会引发"document“错误。

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-14 04:25:03

  1. 您不应该将浏览器和Node.js (傀儡)上下文中的代码混在一起。目前,变量col_headers是在Node.js (puppeteer)上下文中声明的,而填充变量的代码是在浏览器内部的page.evaluate()回调中执行的,因此数据被记录在浏览器控制台(DevTools)中。

试试这个:

代码语言:javascript
运行
复制
  const col_headers = await page2.evaluate(() => {
    const headers = [];
    const elements = document.getElementsByClassName("columnHeaders");
    for (let i = 0; i < elements.length; i++) {
      headers.push(elements[i].innerText);
    }
    return headers;
  });
    
  console.log(col_headers)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64339202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档