---
title: "$(selector) | Grafana k6 documentation"
description: "Browser module: page.$(selector) method"
---

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

# page.$(selector)

> Warning
> 
> Use locator-based [`page.locator(selector)`](/docs/k6/latest/javascript-api/k6-browser/page/locator/) instead.

The method finds an element matching the specified selector within the page. If no elements match the selector, the return value resolves to `null`. To wait for an element on the page, use [locator.waitFor(\[options\])](/docs/k6/latest/javascript-api/k6-browser/locator/waitfor/).

### Returns

Expand table

| Type                            | Description                                                                                                                                                            |
|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Promise<ElementHandle | null>` | A Promise that fulfills with the [ElementHandle](/docs/k6/latest/javascript-api/k6-browser/elementhandle/) of the selector when a matching element is found or `null`. |

### 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 text = await page.$('#text1').then((text) => text.type('hello world'));
}
```
