---
title: "isInViewport([options]) | Grafana k6 documentation"
description: "Browser module: locator.isInViewport method"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# isInViewport(\[options])

Checks whether the element intersects the browser viewport. This matches Playwright’s `toBeInViewport` semantics.

Expand table

| Parameter       | Type   | Default | Description                                                                                                                                                                                                                                                       |
|-----------------|--------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| options         | object | `null`  |                                                                                                                                                                                                                                                                   |
| options.ratio   | number | `0`     | The minimum ratio of the element that must be within the viewport for it to count as in viewport, from `0` to `1`. The default of `0` means any visible pixel counts.                                                                                             |
| options.timeout | number | `30000` | Maximum time in milliseconds. Pass `0` to disable the timeout. Default is overridden by the `setDefaultTimeout` option on [BrowserContext](/docs/k6/latest/javascript-api/k6-browser/browsercontext/) or [Page](/docs/k6/latest/javascript-api/k6-browser/page/). |

### Returns

Expand table

| Type            | Description                                                                          |
|-----------------|--------------------------------------------------------------------------------------|
| `Promise<bool>` | A Promise that fulfills with `true` if the element is in the viewport, else `false`. |

### Example

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

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

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/');
  const button = page.locator('button#submit');
  if (await button.isInViewport()) {
    await button.click();
  }
}
```
