此代碼是打字稿,但你的想法:
async function waitForPopupMatching(
browser: Puppeteer.Browser,
regex: RegExp,
openAction:() => Promise<void>,
timeout: number = 30000,
): Promise<Puppeteer.Page> {
const promise = new Bluebird<Puppeteer.Target>(resolve => {
const listener = async (target: Puppeteer.Target) => {
if (target.type() === 'page' && regex.test(target.url())) {
browser.removeListener('targetcreated', listener);
resolve(target);
}
};
browser.addListener('targetcreated', listener);
}).timeout(timeout);
await openAction(); // Typically a mouse click
const tgt = await promise;
return await tgt.page();
}
來源
2018-03-10 00:39:27
Sam
是啊,我能與對話互動,但我如何處理popup的 –
您是否在談論不是瀏覽器原生的彈出窗口,而是使用html和css生成的? – tomahaug
抱歉不清楚是啊我說的是彈出窗口 –