page。$ eval函数在puppeteer中始终返回未定义

时间:2019-09-13 19:38:52

标签: node.js css-selectors puppeteer

我正在使用puppeteer和函数page。$(selector)来获取值。该函数返回错误“预期将| string |或| function |作为第一个参数,但改为” undefined”。我已经在Chrome的控制台中测试了确切的选择器,并且它可以正常工作。

extern alias myVersionOfWidget;

这是什么问题?

2 个答案:

答案 0 :(得分:3)

函数页面。$ eval()必须接收两个参数,但是您只发送了一个。请参见方法签名:

  

page。$ eval(selector,pageFunction [,... args])

     
      
  • 选择器(字符串)用于查询页面的选择器
  •   
  • pageFunction(函数(元素))要在浏览器上下文中评估的函数
  •   
  • ... args(... Serializable | JSHandle)参数传递给InvalidArgumentError: The second input must be a scalar, but it has shape [64] [[{{node batch_normalization_2/cond/ReadVariableOp/Switch}}]]
  •   
  • returns:(Promise(Serializable))Promise,它解析为pageFunction的返回值
  •   

尝试将您的代码更改为:

pageFunction

答案 1 :(得分:1)

使用第二个参数 (pageFunction-要在浏览器上下文中评估的函数)

await page.$eval(cssSelector, e => e.innerText);