lundi 9 octobre 2017

How to handle more than one window in puppeteer?

I am using puppeteer to do tests with the browser, i've managed to do is to access a page, then i do click in a DOM element, after do click, the browser show me other view, in this view i do click in a button that open a pop up for do log in with facebook.

My question is:

how i can handler the other window for do login with facebook? this is code.

Example code:

import * as puppeteer from 'puppeteer';

const f = async () => {
console.log('..');

const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
page.setViewport({ width: 1200, height: 800 })
await page.goto('http://ift.tt/2zbN699').catch(err => { console.log('error ', err); });

await page.screenshot({ path: 'screenshot.png' });

const resp = await page.click('a').catch(err => { console.log('error click', err); });

const inputElement = await page.$('.signin a').catch(err => { console.log('error selector', err); });

await inputElement.click().catch(err => { console.log('error click', err); });
await page.screenshot({ path: 'screenshot2.png' });

const fbBtn = await page.$('button[name=facebook]');
await fbBtn.click();
// here it's open pop up for do login with facebook
await page.screenshot({ path: 'clickpopup.png' });
};
f();

Apparently there is no way with puppeter to interact with other windows

Here another related question

In this post the user aslushnikov mentions something related with Target domain, but I can not understand what he means, or how to execute.

Any help would be appreciated.

Thank you

Aucun commentaire:

Enregistrer un commentaire