Javascript 噩梦-文档来自哪里?

Javascript 噩梦-文档来自哪里?,javascript,node.js,nightmare,Javascript,Node.js,Nightmare,下面的代码片段是 我想不起这句话: .evaluate(() => document.querySelector('#r1-0 a.result__a').href) 文档来自哪里?代码在Node.js上运行,因此没有浏览器上下文。我检查了文档是否不是全局变量。显然也不是一个参数。我还验证了示例代码是否有效。怎么可能呢?该箭头函数作为参数传递,在噩梦无头浏览器中运行,其中定义了文档 .evaluate(() => document.querySelector('#r1-0 a.re

下面的代码片段是

我想不起这句话:

.evaluate(() => document.querySelector('#r1-0 a.result__a').href)

文档
来自哪里?代码在Node.js上运行,因此没有浏览器上下文。我检查了
文档
是否不是全局变量。显然也不是一个参数。我还验证了示例代码是否有效。怎么可能呢?

该箭头函数作为参数传递,在噩梦无头浏览器中运行,其中定义了
文档

.evaluate(() => document.querySelector('#r1-0 a.result__a').href)
您还可以向此函数传递额外参数,如下所示:

.evaluate((arg) => {
  document.querySelector('#r1-0 a.result__a').href);
}, 'test');

好吧,这就解释了。谢谢!除了给出的答案,在理论方面,无论谁实现函数
evaluate
,都可以在
try
/
catch
子句中调用作为参数传递给它的函数(在示例中使用
文档的函数)。
.evaluate((arg) => {
  document.querySelector('#r1-0 a.result__a').href);
}, 'test');