Scenario:
You click a link or button that opens a new tab, and you want to switch to that tab and perform actions.
const [newPage] = await Promise.all([
context.waitForEvent('page'), // Waits for a new tab to be opened
page.click('a[target="_blank"]'), // Simulates clicking the link that opens a new tab
]);
// Wait for the new tab to load
await newPage.waitForLoadState();
// Do something in the new tab
console.log('New tab title:', await newPage.title());
// Example: take screenshot of the new tab
await newPage.screenshot({ path: 'new-tab.png' });
await browser.close();
})();
Key Concepts:
-
context.waitForEvent('page')
: Waits for a new tab or popup. -
The
Promise.all()
ensures that the event and click happen together. -
newPage.waitForLoadState()
: Ensures the new tab is fully loaded before interaction.