---
title: "waitForElementState(state[, options]) | Grafana k6 documentation"
description: "Browser module: elementHandle.waitForElementState method"
---

# waitForElementState(state\[, options])

Waits for the element to reach the specified state.

Expand table

| Parameter | Type   | Default | Description                                                                                                                                                                                                                                                       |
|-----------|--------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| state     | string |         | The state to wait for. This can be one of `visible`, `hidden`, `stable`, `enabled`, `disabled`, or `editable`.                                                                                                                                                    |
| 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<void>` | A Promise that fulfills when the element reaches the specified state or the timeout is reached. |

### 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/browser.php');

  const element = await page.$('#text1');
  await element.waitForElementState('visible');

  await page.close();
}
```
