···148148}
149149```
150150151151-::: tip
152152-If you are using TypeScript, don't forget to reference `@vitest/browser/providers/playwright` in your [setup file](/config/#setupfile) or a [config file](/config/) to get autocompletion in the config and in `userEvent` and `page` options:
153153-154154-```ts
155155-/// <reference types="@vitest/browser/providers/playwright" />
156156-```
157157-:::
158158-159151### Custom `webdriverio` commands
160152161153Vitest exposes some `webdriverio` specific properties on the context object.
···163155- `browser` is the `WebdriverIO.Browser` API.
164156165157Vitest automatically switches the `webdriver` context to the test iframe by calling `browser.switchFrame` before the command is called, so `$` and `$$` methods refer to the elements inside the iframe, not in the orchestrator, but non-webdriver APIs will still refer to the parent frame context.
166166-167167-::: tip
168168-If you are using TypeScript, don't forget to reference `@vitest/browser/providers/webdriverio` in your [setup file](/config/#setupfile) or a [config file](/config/) to get autocompletion:
169169-170170-```ts
171171-/// <reference types="@vitest/browser/providers/webdriverio" />
172172-```
173173-:::
-11
docs/guide/browser/config.md
···455455resolveDiffPath: ({ arg, attachmentsDir, browserName, ext, root, testFileName }) =>
456456 `${root}/${attachmentsDir}/screenshot-diffs/${testFileName}/${arg}-${browserName}${ext}`
457457```
458458-459459-::: tip
460460-To have a better type safety when using built-in providers, you should reference
461461-one of these types (for provider that you are using) in your
462462-[config file](/config/):
463463-464464-```ts
465465-/// <reference types="@vitest/browser/providers/playwright" />
466466-/// <reference types="@vitest/browser/providers/webdriverio" />
467467-```
468468-:::
-42
docs/guide/browser/index.md
···293293 - `webkit`
294294 - `chromium`
295295296296-## TypeScript
297297-298298-By default, TypeScript doesn't recognize providers options and extra `expect` properties. If you don't use any providers, make sure the `@vitest/browser/matchers` is referenced somewhere in your tests, [setup file](/config/#setupfiles) or a [config file](/config/) to pick up the extra `expect` definitions. If you are using custom providers, make sure to add `@vitest/browser/providers/playwright` or `@vitest/browser/providers/webdriverio` to the same file so TypeScript can pick up definitions for custom options:
299299-300300-::: code-group
301301-```ts [default]
302302-/// <reference types="@vitest/browser/matchers" />
303303-```
304304-```ts [playwright]
305305-/// <reference types="@vitest/browser/providers/playwright" />
306306-```
307307-```ts [webdriverio]
308308-/// <reference types="@vitest/browser/providers/webdriverio" />
309309-```
310310-:::
311311-312312-Alternatively, you can also add them to `compilerOptions.types` field in your `tsconfig.json` file. Note that specifying anything in this field will disable [auto loading](https://www.typescriptlang.org/tsconfig/#types) of `@types/*` packages.
313313-314314-::: code-group
315315-```json [default]
316316-{
317317- "compilerOptions": {
318318- "types": ["@vitest/browser/matchers"]
319319- }
320320-}
321321-```
322322-```json [playwright]
323323-{
324324- "compilerOptions": {
325325- "types": ["@vitest/browser/providers/playwright"]
326326- }
327327-}
328328-```
329329-```json [webdriverio]
330330-{
331331- "compilerOptions": {
332332- "types": ["@vitest/browser/providers/webdriverio"]
333333- }
334334-}
335335-```
336336-:::
337337-338296## Browser Compatibility
339297340298Vitest uses [Vite dev server](https://vitejs.dev/guide/#browser-support) to run your tests, so we only support features specified in the [`esbuild.target`](https://vitejs.dev/config/shared-options.html#esbuild) option (`esnext` by default).
+1-10
docs/guide/browser/interactivity-api.md
···1212await userEvent.click(document.querySelector('.button'))
1313```
14141515-Almost every `userEvent` method inherits its provider options. To see all available options in your IDE, add `webdriver` or `playwright` types (depending on your provider) to your [setup file](/config/#setupfile) or a [config file](/config/) (depending on what is in `included` in your `tsconfig.json`):
1616-1717-::: code-group
1818-```ts [playwright]
1919-/// <reference types="@vitest/browser/providers/playwright" />
2020-```
2121-```ts [webdriverio]
2222-/// <reference types="@vitest/browser/providers/webdriverio" />
2323-```
2424-:::
1515+Almost every `userEvent` method inherits its provider options.
25162617## userEvent.setup
2718