Javascript 木偶演员-在帧内运行函数

Javascript 木偶演员-在帧内运行函数,javascript,node.js,google-chrome-devtools,chromium,puppeteer,Javascript,Node.js,Google Chrome Devtools,Chromium,Puppeteer,我试图在一个框架内执行一个函数,但没有成功 await page.evaluateHandle(()=>{ console.log(window.document.getElementsByTagName("frame")[3].contentWindow) console.log(window.document.getElementsByTagName("frame")[3].contentWindow.fiAbrePagina) }); 在控制台日志中可以看到,该函数存在于对

我试图在一个框架内执行一个函数,但没有成功

await page.evaluateHandle(()=>{
  console.log(window.document.getElementsByTagName("frame")[3].contentWindow)
  console.log(window.document.getElementsByTagName("frame")[3].contentWindow.fiAbrePagina)
});
在控制台日志中可以看到,该函数存在于对象中,但当我尝试访问该函数时,它不存在

查看控制台并检查窗口对象功能存在:

我需要帮助,如何在一个框架内执行函数?

您可以使用它来获取附加到页面的所有框架的数组。然后,您可以使用在特定框架内的浏览器上下文中执行函数

此外,请确保使用从页面DOM环境中进行处理:

page.on('console', msg => {
  for (let i = 0; i < msg.args().length; ++i) {
    console.log(`${i}: ${msg.args()[i]}`);
  }
});

const frame = page.frames().find(frame => frame.name() === 'example');

await frame.evaluate(() => {
  console.log(window.fiAbrePagina);
});
page.on('console',msg=>{
for(设i=0;iframe.name()=='example');
等待帧。评估(()=>{
console.log(window.fiAbrePagina);
});
您可以使用获取附加到页面的所有帧的数组。然后,您可以使用在特定框架内的浏览器上下文中执行函数

此外,请确保使用从页面DOM环境中进行处理:

page.on('console', msg => {
  for (let i = 0; i < msg.args().length; ++i) {
    console.log(`${i}: ${msg.args()[i]}`);
  }
});

const frame = page.frames().find(frame => frame.name() === 'example');

await frame.evaluate(() => {
  console.log(window.fiAbrePagina);
});
page.on('console',msg=>{
for(设i=0;iframe.name()=='example');
等待帧。评估(()=>{
console.log(window.fiAbrePagina);
});
您可以使用frame元素中的来执行此操作,如下所示:

let frameElement = await page.evaluateHandle(() => window.document.getElementsByTagName("frame")[3]);

frameElement = await frameElement.asElement();

const frameContentFrame = await frameElement.contentFrame();

await frameContentFrame.evaluate(() => console.log(fiAbrePagina.toString()));
您可以使用frame元素中的来执行此操作,如下所示:

let frameElement = await page.evaluateHandle(() => window.document.getElementsByTagName("frame")[3]);

frameElement = await frameElement.asElement();

const frameContentFrame = await frameElement.contentFrame();

await frameContentFrame.evaluate(() => console.log(fiAbrePagina.toString()));