animate (optional): Whether to animate the transition (default: true)
Returns:Promise<void>Example:
const page = await browser.newPage()await page.goto('https://example.com')// Hide the pageawait page.hide()// Do work in backgroundawait page.evaluate(() => { // Page is hidden but still active console.log('Running in background')})// Show again when doneawait page.show()
Use show() and hide() to manage multiple pages in a browser, similar to switching tabs.
// Set desktop Chrome user agentawait page.setUserAgent( 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36')await page.goto('https://example.com')// Verify user agentconst ua = await page.evaluate(() => navigator.userAgent)console.log('User agent:', ua)
Common user agents:
// Desktop Chrome (Windows)const desktopChrome = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'// Desktop Safari (Mac)const desktopSafari = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_3_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15'// Mobile Chrome (Android)const mobileChrome = 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.64 Mobile Safari/537.36'// iPhone Safariconst iPhoneSafari = 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1'await page.setUserAgent(desktopChrome)
Set the user agent before navigating to ensure it’s applied to all requests on the page.
// For SPAs that use client-side routingawait page.goto('https://spa-example.com')// Click a navigation linkawait page.click('#nav-link')// Wait for URL to changeconst initialUrl = await page.url()let newUrl = initialUrlwhile (newUrl === initialUrl) { await new Promise(resolve => setTimeout(resolve, 100)) newUrl = await page.url()}console.log('Navigated to:', newUrl)// Or wait for content to changeawait page.waitForSelector('.new-page-content')