[Home](./index.md) > [puppeteer](./puppeteer.md) > [Page](./puppeteer.page.md) > [emulate](./puppeteer.page.emulate.md)
## Page.emulate() method
Emulates given device metrics and user agent. This method is a shortcut for calling two methods: [Page.setUserAgent()](./puppeteer.page.setuseragent.md) and [Page.setViewport()](./puppeteer.page.setviewport.md) To aid emulation, Puppeteer provides a list of device descriptors that can be obtained via the [Puppeteer.devices](./puppeteer.puppeteer.devices.md) `page.emulate` will resize the page. A lot of websites don't expect phones to change size, so you should emulate before navigating to the page.
Signature:
```typescript
emulate(options: {
viewport: Viewport;
userAgent: string;
}): Promise;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| options | { viewport: [Viewport](./puppeteer.viewport.md); userAgent: string; } | |
Returns:
Promise<void>
## Remarks
List of all available devices is available in the source code: [src/common/DeviceDescriptors.ts](https://github.com/puppeteer/puppeteer/blob/main/src/common/DeviceDescriptors.ts).
## Example
```js
const puppeteer = require('puppeteer');
const iPhone = puppeteer.devices['iPhone 6'];
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.emulate(iPhone);
await page.goto('https://www.google.com');
// other actions...
await browser.close();
})();
```