{"record":{"id":"439c32a2cd083ff5","repo":"vitest-dev/vitest","slug":"method-getbytitle-is-not-supported-by-the-pro","errorCode":null,"errorMessage":"Method \"getByTitle\" is not supported by the \"${provider}\" provider.","messagePattern":"Method \"getByTitle\" is not supported by the \"(.+?)\" provider\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/browser/src/client/tester/context.ts","lineNumber":458,"sourceCode":"    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.`)\n  },\n  elementLocator() {\n    throw new Error(`Method \"elementLocator\" is not supported by the \"${provider}\" provider.`)\n  },\n  frameLocator() {\n    throw new Error(`Method \"frameLocator\" is not supported by the \"${provider}\" provider.`)\n  },\n  extend(methods) {\n    for (const key in methods) {\n      (page as any)[key] = (methods as any)[key].bind(page)\n    }\n    return page\n  },\n}\n\nfunction convertToLocator(element: Element | Locator): Locator {\n  if (element instanceof Element) {\n    return page.elementLocator(element)","sourceCodeStart":440,"sourceCodeEnd":476,"githubUrl":"https://github.com/vitest-dev/vitest/blob/1fa9837ec26533512fdcad8baebf249771bd340a/packages/browser/src/client/tester/context.ts#L440-L476","documentation":"page.getByTitle is a locator method that requires a full browser provider. The default page stub throws, interpolating the active provider name. Title attribute lookup uses provider selector engines absent from preview.","triggerScenarios":"Calling page.getByTitle('Close') while provider is 'preview' or a custom provider without the method registered.","commonSituations":"Tooltip/title-based tests migrated from Playwright/RTL; default provider config; missing provider install.","solutions":["Configure test.browser.provider to 'playwright' or 'webdriverio'.","Under preview, use document.querySelector('[title=\"Close\"]').","Register the method via page.extend for a custom provider."],"exampleFix":"// before\nconst tip = page.getByTitle('Close')\n// after (preview provider)\nconst tip = document.querySelector('[title=\"Close\"]')!","handlingStrategy":"validation","validationCode":"if (getBrowserState().provider === 'preview') {\n  document.querySelector('[title=\"Close\"]')\n} else {\n  page.getByTitle('Close')\n}","typeGuard":"function supportsLocators(): boolean {\n  return ['playwright', 'webdriverio'].includes(getBrowserState().provider ?? '')\n}","tryCatchPattern":null,"preventionTips":["Switch to a full provider when title-based location is needed.","Map getByTitle to [title=\"...\"] under preview.","Centralize provider capability checks."],"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"}