をこのコードは活字体ですが、あなたのアイデアを得る:
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
をうん、私はダイアログと対話することができていますが、どのようにポップアップを処理するのですか –
ブラウザにネイティブではなく、HTMLやCSSを使用して生成されたポップアップについて話していますか? – tomahaug
申し訳ありませんが晴れていない私はポップアップウィンドウについて話していた –