{"record":{"id":"5458dc3e9e561f1f","repo":"vitest-dev/vitest","slug":"method-getbyrole-is-not-supported-by-the-prov","errorCode":null,"errorMessage":"Method \"getByRole\" is not supported by the \"${provider}\" provider.","messagePattern":"Method \"getByRole\" is not supported by the \"(.+?)\" provider\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/browser/src/client/tester/context.ts","lineNumber":440,"sourceCode":"          kind: bodyOrOptions?.kind ?? 'mark',\n          stack: bodyOrOptions?.stack ?? error?.stack,\n        })\n      }\n      if (!hasActiveTrace) {\n        return Promise.resolve()\n      }\n      return triggerCommand(\n        '__vitest_markTrace',\n        [{\n          name,\n          stack: bodyOrOptions?.stack ?? error?.stack,\n        }],\n        error,\n      )\n    })\n  },\n  getByRole() {\n    throw new Error(`Method \"getByRole\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByLabelText() {\n    throw new Error(`Method \"getByLabelText\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByTestId() {\n    throw new Error(`Method \"getByTestId\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByAltText() {\n    throw new Error(`Method \"getByAltText\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByPlaceholder() {\n    throw new Error(`Method \"getByPlaceholder\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByText() {\n    throw new Error(`Method \"getByText\" is not supported by the \"${provider}\" provider.`)\n  },\n  getByTitle() {\n    throw new Error(`Method \"getByTitle\" is not supported by the \"${provider}\" provider.`)","sourceCodeStart":422,"sourceCodeEnd":458,"githubUrl":"https://github.com/vitest-dev/vitest/blob/1fa9837ec26533512fdcad8baebf249771bd340a/packages/browser/src/client/tester/context.ts#L422-L458","documentation":"page.getByRole is part of the locator API that is only implemented by full browser-automation providers (Playwright/WebDriverIO). The default page object stubs these methods to throw, naming the active provider so the user knows the call is unsupported in their configuration. The stubs are overridden by provider.extend() when a real provider is installed.","triggerScenarios":"Calling page.getByRole(...) while provider is 'preview' (or any provider that did not register locators); accessing locators before the provider plugin has loaded; running in a stripped-down custom provider that omits locator methods.","commonSituations":"Default browser config without provider: 'playwright'; copying locator examples from docs into a preview-provider project; partial provider setup where only some locator methods are wired.","solutions":["Switch test.browser.provider to 'playwright' or 'webdriverio' and install the matching provider package.","If you must stay on preview, use raw DOM queries (document.querySelector) instead of getByRole.","Verify locators are registered via page.extend or that the provider plugin loaded by checking getBrowserState().provider."],"exampleFix":"// before\nconst btn = page.getByRole('button', { name: 'Save' })\n// after (preview provider)\nconst btn = document.querySelector('button')!  // or switch provider to 'playwright'","handlingStrategy":"validation","validationCode":"if (getBrowserState().provider === 'preview') {\n  // use document.querySelector instead of page.getByRole\n} else {\n  page.getByRole('button', { name: 'Save' })\n}","typeGuard":"function supportsLocators(): boolean {\n  return ['playwright', 'webdriverio'].includes(getBrowserState().provider ?? '')\n}","tryCatchPattern":null,"preventionTips":["Configure provider: 'playwright' (or 'webdriverio') when using locator APIs.","Keep provider-specific code behind a provider capability check.","Document which APIs require which provider."],"tags":["browser","locators","provider","preview"],"backgroundTag":null,"analyzedSha":"1fa9837ec26533512fdcad8baebf249771bd340a","analyzedAt":"2026-08-11T16:11:39.638Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}