---
title: "evaluate(pageFunction[, arg]) | Grafana k6 documentation"
description: "Browser module: page.evaluate(pageFunction[, arg]) method"
---

# evaluate(pageFunction\[, arg])

Executes JavaScript code in the page and returns the value of the `pageFunction` invocation.

Expand table

| Parameter    | Type               | Defaults | Description                                                              |
|--------------|--------------------|----------|--------------------------------------------------------------------------|
| pageFunction | function or string |          | Function to be evaluated in the page context. This can also be a string. |
| arg          | string             | `''`     | Optional argument to pass to `pageFunction`                              |

### Returns

Expand table

| Type           | Description                                 |
|----------------|---------------------------------------------|
| `Promise<any>` | The value of the `pageFunction` invocation. |

### Example

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
import { browser } from 'k6/browser';
import { check } from 'k6';

export const options = {
  scenarios: {
    browser: {
      executor: 'shared-iterations',
      options: {
        browser: {
          type: 'chromium',
        },
      },
    },
  },
};

export default async function () {
  const page = await browser.newPage();

  await page.goto('https://test.k6.io/browser.php');
  const dimensions = await page.evaluate(() => {
    const obj = {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio,
    };
    return obj;
  });

  check(dimensions, {
    width: (d) => d.width === 1280,
    height: (d) => d.height === 720,
    scale: (d) => d.deviceScaleFactor === 1,
  });
}
```
