木偶-新窗口关于:空白

时间:2018-07-17 21:13:24

标签: node.js puppeteer

试图链接到某个新窗口时,该新窗口会从网站弹出。当此新窗口打开时,链接为:about:blank。当链接中的内容不是空白时,它将起作用。 有人知道解决方法吗?

工作(与某物链接):

const newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page())));
await page.click('#link-of-new-window');
const newPage = await newPagePromise;

不工作(大约:空白)

//not entering
browser.on('targetcreated', function(){
    console.log('New Tab Created');
});

const newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page())));
await page.click('#link-of-new-window');            
const newPage = await newPagePromise; //hang in here forever

1 个答案:

答案 0 :(得分:0)

显然这是一个错误。如前所述,它在这里报告:Puppeteer's github.

作为一种解决方法,我注意到在创建带有某些链接的新窗口时,如下所示:

await page.evaluate(async () => await window.open("http://google.com","Schedule","menubar=0,scrollbars=1,resizable=1"));

代码遵循以下功能:

_targetCreated
_targetInfoChanged
_targetInfoChanged

但是,当使用auto:blank创建新窗口时

await page.evaluate(async () => await window.open("","Schedule","menubar=0,scrollbars=1,resizable=1"));

这是流程:

_targetCreated
_targetInfoChanged

因此,当我单击一个我知道是自动的链接时:空白,我将搜索未初始化的目标“ target._isInitialized”,然后再次调用_targetInfoChanged并将targetInfo作为参数传递。 它现在正在工作。这只是解决错误之前的解决方法。