@enekesabel/playwright-lite 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +87 -87
  2. package/dist/index.mjs +328 -145
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -35,10 +35,10 @@ await page.getByRole("button", { name: "Save" }).click();
35
35
 
36
36
  ## Installation
37
37
 
38
- playwright-lite is currently in alpha.
38
+ playwright-lite is pre-1.0; APIs may change.
39
39
 
40
40
  ```sh
41
- npm add @enekesabel/playwright-lite@alpha
41
+ npm add @enekesabel/playwright-lite
42
42
  ```
43
43
 
44
44
  Requires Node.js 20 or newer.
@@ -66,26 +66,26 @@ Targets Playwright **1.62.1**. Statuses describe API compatibility within the ru
66
66
  | [`ariaSnapshot`](https://playwright.dev/docs/api/class-page#page-aria-snapshot) | ✅ | |
67
67
  | [`bringToFront`](https://playwright.dev/docs/api/class-page#page-bring-to-front) | ❌ | |
68
68
  | [`cancelPickLocator`](https://playwright.dev/docs/api/class-page#page-cancel-pick-locator) | ❌ | |
69
- | [`check`](https://playwright.dev/docs/api/class-page#page-check) | ⚠️ | The `signal` option is unsupported. |
69
+ | [`check`](https://playwright.dev/docs/api/class-page#page-check) | ✅ | |
70
70
  | [`clearConsoleMessages`](https://playwright.dev/docs/api/class-page#page-clear-console-messages) | ❌ | |
71
71
  | [`clearPageErrors`](https://playwright.dev/docs/api/class-page#page-clear-page-errors) | ❌ | |
72
- | [`click`](https://playwright.dev/docs/api/class-page#page-click) | ⚠️ | The `signal` option is unsupported. The action does not wait for navigation. |
72
+ | [`click`](https://playwright.dev/docs/api/class-page#page-click) | ⚠️ | The action does not wait for navigation. |
73
73
  | [`clock`](https://playwright.dev/docs/api/class-page#page-clock) | ❌ | |
74
74
  | [`close`](https://playwright.dev/docs/api/class-page#page-close) | ❌ | |
75
75
  | [`consoleMessages`](https://playwright.dev/docs/api/class-page#page-console-messages) | ❌ | |
76
76
  | [`content`](https://playwright.dev/docs/api/class-page#page-content) | ✅ | |
77
77
  | [`context`](https://playwright.dev/docs/api/class-page#page-context) | ❌ | |
78
78
  | [`coverage`](https://playwright.dev/docs/api/class-page#page-coverage) | ❌ | |
79
- | [`dblclick`](https://playwright.dev/docs/api/class-page#page-dblclick) | ⚠️ | The `signal` option is unsupported. |
80
- | [`dispatchEvent`](https://playwright.dev/docs/api/class-page#page-dispatch-event) | ⚠️ | The `signal` option is unsupported; `JSHandle`/`ElementHandle` values in `eventInit` are not unwrapped. |
79
+ | [`dblclick`](https://playwright.dev/docs/api/class-page#page-dblclick) | ✅ | |
80
+ | [`dispatchEvent`](https://playwright.dev/docs/api/class-page#page-dispatch-event) | ⚠️ | `JSHandle`/`ElementHandle` values in `eventInit` are not unwrapped. |
81
81
  | [`dragAndDrop`](https://playwright.dev/docs/api/class-page#page-drag-and-drop) | ❌ | |
82
82
  | [`emulateMedia`](https://playwright.dev/docs/api/class-page#page-emulate-media) | ❌ | |
83
83
  | [`evaluate`](https://playwright.dev/docs/api/class-page#page-evaluate) | ⚠️ | Rejects `exposeFunctions: true`. |
84
84
  | [`evaluateHandle`](https://playwright.dev/docs/api/class-page#page-evaluate-handle) | ❌ | |
85
85
  | [`exposeBinding`](https://playwright.dev/docs/api/class-page#page-expose-binding) | ❌ | |
86
86
  | [`exposeFunction`](https://playwright.dev/docs/api/class-page#page-expose-function) | ❌ | |
87
- | [`fill`](https://playwright.dev/docs/api/class-page#page-fill) | ⚠️ | Multiple matches throw instead of selecting the first match. Unsupported options: `force`, `signal`, `strict`. |
88
- | [`focus`](https://playwright.dev/docs/api/class-page#page-focus) | ⚠️ | Multiple matches throw instead of selecting the first match. Unsupported options: `signal`, `strict`. |
87
+ | [`fill`](https://playwright.dev/docs/api/class-page#page-fill) | ⚠️ | The `force` option is unsupported. |
88
+ | [`focus`](https://playwright.dev/docs/api/class-page#page-focus) | ✅ | |
89
89
  | [`frame`](https://playwright.dev/docs/api/class-page#page-frame) | 🚫 | Iframe realms are outside the single-document boundary. |
90
90
  | [`frameLocator`](https://playwright.dev/docs/api/class-page#page-frame-locator) | 🚫 | Iframe realms are outside the single-document boundary. |
91
91
  | [`frames`](https://playwright.dev/docs/api/class-page#page-frames) | 🚫 | Iframe realms are outside the single-document boundary. |
@@ -101,7 +101,7 @@ Targets Playwright **1.62.1**. Statuses describe API compatibility within the ru
101
101
  | [`goForward`](https://playwright.dev/docs/api/class-page#page-go-forward) | ❌ | |
102
102
  | [`goto`](https://playwright.dev/docs/api/class-page#page-goto) | ⚠️ | Does not return a `Response`; resolves to `null` only for same-document hash navigation. Relative URLs use `document.baseURI`, not a configured Playwright `baseURL`. Rejects `referer`, `signal`, and `waitUntil: "networkidle"`. |
103
103
  | [`hideHighlight`](https://playwright.dev/docs/api/class-page#page-hide-highlight) | ✅ | |
104
- | [`hover`](https://playwright.dev/docs/api/class-page#page-hover) | ⚠️ | The `signal` option is unsupported. |
104
+ | [`hover`](https://playwright.dev/docs/api/class-page#page-hover) | ✅ | |
105
105
  | [`innerHTML`](https://playwright.dev/docs/api/class-page#page-inner-html) | ✅ | |
106
106
  | [`innerText`](https://playwright.dev/docs/api/class-page#page-inner-text) | ✅ | |
107
107
  | [`inputValue`](https://playwright.dev/docs/api/class-page#page-input-value) | ✅ | |
@@ -126,7 +126,7 @@ Targets Playwright **1.62.1**. Statuses describe API compatibility within the ru
126
126
  | [`pdf`](https://playwright.dev/docs/api/class-page#page-pdf) | ❌ | |
127
127
  | [`pickLocator`](https://playwright.dev/docs/api/class-page#page-pick-locator) | ❌ | |
128
128
  | [`prependListener`](https://playwright.dev/docs/events) | ❌ | |
129
- | [`press`](https://playwright.dev/docs/api/class-page#page-press) | ⚠️ | Multiple matches throw instead of selecting the first match. Unsupported options: `delay`, `signal`, `strict`. |
129
+ | [`press`](https://playwright.dev/docs/api/class-page#page-press) | ✅ | |
130
130
  | [`reload`](https://playwright.dev/docs/api/class-page#page-reload) | ❌ | |
131
131
  | [`removeAllListeners`](https://playwright.dev/docs/api/class-page#page-remove-all-listeners) | ❌ | |
132
132
  | [`removeListener`](https://playwright.dev/docs/events) | ❌ | |
@@ -139,21 +139,21 @@ Targets Playwright **1.62.1**. Statuses describe API compatibility within the ru
139
139
  | [`routeWebSocket`](https://playwright.dev/docs/api/class-page#page-route-web-socket) | ❌ | |
140
140
  | [`screencast`](https://playwright.dev/docs/api/class-page#page-screencast) | ❌ | |
141
141
  | [`screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) | ❌ | |
142
- | [`selectOption`](https://playwright.dev/docs/api/class-page#page-select-option) | ⚠️ | Multiple matches throw instead of selecting the first match. `ElementHandle` option values are unsupported. Unsupported options: `force`, `signal`, `strict`. |
142
+ | [`selectOption`](https://playwright.dev/docs/api/class-page#page-select-option) | ⚠️ | `ElementHandle` option values are unsupported. The `force` option is unsupported. |
143
143
  | [`sessionStorage`](https://playwright.dev/docs/api/class-page#page-session-storage) | ✅ | |
144
- | [`setChecked`](https://playwright.dev/docs/api/class-page#page-set-checked) | ⚠️ | The `signal` option is unsupported. |
144
+ | [`setChecked`](https://playwright.dev/docs/api/class-page#page-set-checked) | ✅ | |
145
145
  | [`setContent`](https://playwright.dev/docs/api/class-page#page-set-content) | 🚫 | Document replacement is excluded. |
146
146
  | [`setDefaultNavigationTimeout`](https://playwright.dev/docs/api/class-page#page-set-default-navigation-timeout) | ✅ | |
147
147
  | [`setDefaultTimeout`](https://playwright.dev/docs/api/class-page#page-set-default-timeout) | ✅ | |
148
148
  | [`setExtraHTTPHeaders`](https://playwright.dev/docs/api/class-page#page-set-extra-http-headers) | ❌ | |
149
- | [`setInputFiles`](https://playwright.dev/docs/api/class-page#page-set-input-files) | ⚠️ | Accepts only in-memory `{ name, mimeType, buffer }` objects; file paths and directory uploads are unsupported. Empty `mimeType` throws instead of inferring a MIME type. The `signal` option is unsupported. |
149
+ | [`setInputFiles`](https://playwright.dev/docs/api/class-page#page-set-input-files) | ⚠️ | Accepts only in-memory `{ name, mimeType, buffer }` objects; file paths and directory uploads are unsupported. Empty `mimeType` throws instead of inferring a MIME type. |
150
150
  | [`setViewportSize`](https://playwright.dev/docs/api/class-page#page-set-viewport-size) | 🚫 | Browser viewport resizing is excluded. |
151
151
  | [`tap`](https://playwright.dev/docs/api/class-page#page-tap) | ❌ | |
152
152
  | [`textContent`](https://playwright.dev/docs/api/class-page#page-text-content) | ✅ | |
153
153
  | [`title`](https://playwright.dev/docs/api/class-page#page-title) | ✅ | |
154
154
  | [`touchscreen`](https://playwright.dev/docs/api/class-page#page-touchscreen) | ❌ | |
155
- | [`type`](https://playwright.dev/docs/api/class-page#page-type) | ⚠️ | The `signal` option is unsupported. |
156
- | [`uncheck`](https://playwright.dev/docs/api/class-page#page-uncheck) | ⚠️ | The `signal` option is unsupported. |
155
+ | [`type`](https://playwright.dev/docs/api/class-page#page-type) | ✅ | |
156
+ | [`uncheck`](https://playwright.dev/docs/api/class-page#page-uncheck) | ✅ | |
157
157
  | [`unroute`](https://playwright.dev/docs/api/class-page#page-unroute) | ❌ | |
158
158
  | [`unrouteAll`](https://playwright.dev/docs/api/class-page#page-unroute-all) | ❌ | |
159
159
  | [`url`](https://playwright.dev/docs/api/class-page#page-url) | ✅ | |
@@ -165,84 +165,84 @@ Targets Playwright **1.62.1**. Statuses describe API compatibility within the ru
165
165
  | [`waitForNavigation`](https://playwright.dev/docs/api/class-page#page-wait-for-navigation) | ❌ | |
166
166
  | [`waitForRequest`](https://playwright.dev/docs/api/class-page#page-wait-for-request) | ❌ | |
167
167
  | [`waitForResponse`](https://playwright.dev/docs/api/class-page#page-wait-for-response) | ❌ | |
168
- | [`waitForSelector`](https://playwright.dev/docs/api/class-page#page-wait-for-selector) | ⚠️ | The `signal` option is unsupported. Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
168
+ | [`waitForSelector`](https://playwright.dev/docs/api/class-page#page-wait-for-selector) | ⚠️ | Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
169
169
  | [`waitForTimeout`](https://playwright.dev/docs/api/class-page#page-wait-for-timeout) | ✅ | |
170
170
  | [`waitForURL`](https://playwright.dev/docs/api/class-page#page-wait-for-url) | ❌ | |
171
171
  | [`workers`](https://playwright.dev/docs/api/class-page#page-workers) | ❌ | |
172
172
 
173
173
  ### Locator
174
174
 
175
- | API | Status | Notes |
176
- | ------------------------------------------------------------------------------------------------------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
177
- | [`all`](https://playwright.dev/docs/api/class-locator#locator-all) | ✅ | |
178
- | [`allInnerTexts`](https://playwright.dev/docs/api/class-locator#locator-all-inner-texts) | ✅ | |
179
- | [`allTextContents`](https://playwright.dev/docs/api/class-locator#locator-all-text-contents) | ✅ | |
180
- | [`and`](https://playwright.dev/docs/api/class-locator#locator-and) | ✅ | |
181
- | [`ariaSnapshot`](https://playwright.dev/docs/api/class-locator#locator-aria-snapshot) | ✅ | |
182
- | [`blur`](https://playwright.dev/docs/api/class-locator#locator-blur) | ✅ | |
183
- | [`boundingBox`](https://playwright.dev/docs/api/class-locator#locator-bounding-box) | ✅ | |
184
- | [`check`](https://playwright.dev/docs/api/class-locator#locator-check) | ⚠️ | The `signal` option is unsupported. |
185
- | [`clear`](https://playwright.dev/docs/api/class-locator#locator-clear) | ⚠️ | Unsupported options: `force`, `signal`. |
186
- | [`click`](https://playwright.dev/docs/api/class-locator#locator-click) | ⚠️ | Unsupported options: `signal`, `steps`. The action does not wait for navigation. |
187
- | [`contentFrame`](https://playwright.dev/docs/api/class-locator#locator-content-frame) | 🚫 | Iframe realms are outside the single-document boundary. |
188
- | [`count`](https://playwright.dev/docs/api/class-locator#locator-count) | ✅ | |
189
- | [`dblclick`](https://playwright.dev/docs/api/class-locator#locator-dblclick) | ⚠️ | Unsupported options: `signal`, `steps`. |
190
- | [`describe`](https://playwright.dev/docs/api/class-locator#locator-describe) | ✅ | |
191
- | [`description`](https://playwright.dev/docs/api/class-locator#locator-description) | ⚠️ | `describe('').description()` returns `''` instead of `null`; `describe('x').filter({}).description()` returns `null` instead of `'x'`. |
192
- | [`dispatchEvent`](https://playwright.dev/docs/api/class-locator#locator-dispatch-event) | ⚠️ | The `signal` option is unsupported; `JSHandle`/`ElementHandle` values in `eventInit` are not unwrapped. |
193
- | [`dragTo`](https://playwright.dev/docs/api/class-locator#locator-drag-to) | ❌ | |
194
- | [`drop`](https://playwright.dev/docs/api/class-locator#locator-drop) | ❌ | |
195
- | [`elementHandle`](https://playwright.dev/docs/api/class-locator#locator-element-handle) | ⚠️ | Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
196
- | [`elementHandles`](https://playwright.dev/docs/api/class-locator#locator-element-handles) | ⚠️ | Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
197
- | [`evaluate`](https://playwright.dev/docs/api/class-locator#locator-evaluate) | ⚠️ | Rejects `exposeFunctions: true`. |
198
- | [`evaluateAll`](https://playwright.dev/docs/api/class-locator#locator-evaluate-all) | ✅ | |
199
- | [`evaluateHandle`](https://playwright.dev/docs/api/class-locator#locator-evaluate-handle) | ❌ | |
200
- | [`fill`](https://playwright.dev/docs/api/class-locator#locator-fill) | ⚠️ | Unsupported options: `force`, `signal`. |
201
- | [`filter`](https://playwright.dev/docs/api/class-locator#locator-filter) | ✅ | |
202
- | [`first`](https://playwright.dev/docs/api/class-locator#locator-first) | ✅ | |
203
- | [`focus`](https://playwright.dev/docs/api/class-locator#locator-focus) | ✅ | |
204
- | [`frameLocator`](https://playwright.dev/docs/api/class-locator#locator-frame-locator) | 🚫 | Iframe realms are outside the single-document boundary. |
205
- | [`getAttribute`](https://playwright.dev/docs/api/class-locator#locator-get-attribute) | ✅ | |
206
- | [`getByAltText`](https://playwright.dev/docs/api/class-locator#locator-get-by-alt-text) | ✅ | |
207
- | [`getByLabel`](https://playwright.dev/docs/api/class-locator#locator-get-by-label) | ✅ | |
208
- | [`getByPlaceholder`](https://playwright.dev/docs/api/class-locator#locator-get-by-placeholder) | ✅ | |
209
- | [`getByRole`](https://playwright.dev/docs/api/class-locator#locator-get-by-role) | ✅ | |
210
- | [`getByTestId`](https://playwright.dev/docs/api/class-locator#locator-get-by-test-id) | ✅ | |
211
- | [`getByText`](https://playwright.dev/docs/api/class-locator#locator-get-by-text) | ✅ | |
212
- | [`getByTitle`](https://playwright.dev/docs/api/class-locator#locator-get-by-title) | ✅ | |
213
- | [`hideHighlight`](https://playwright.dev/docs/api/class-locator#locator-hide-highlight) | ✅ | |
214
- | [`highlight`](https://playwright.dev/docs/api/class-locator#locator-highlight) | ✅ | |
215
- | [`hover`](https://playwright.dev/docs/api/class-locator#locator-hover) | ⚠️ | The `signal` option is unsupported. |
216
- | [`innerHTML`](https://playwright.dev/docs/api/class-locator#locator-inner-html) | ✅ | |
217
- | [`innerText`](https://playwright.dev/docs/api/class-locator#locator-inner-text) | ✅ | |
218
- | [`inputValue`](https://playwright.dev/docs/api/class-locator#locator-input-value) | ✅ | |
219
- | [`isChecked`](https://playwright.dev/docs/api/class-locator#locator-is-checked) | ✅ | |
220
- | [`isDisabled`](https://playwright.dev/docs/api/class-locator#locator-is-disabled) | ✅ | |
221
- | [`isEditable`](https://playwright.dev/docs/api/class-locator#locator-is-editable) | ✅ | |
222
- | [`isEnabled`](https://playwright.dev/docs/api/class-locator#locator-is-enabled) | ✅ | |
223
- | [`isHidden`](https://playwright.dev/docs/api/class-locator#locator-is-hidden) | ✅ | |
224
- | [`isVisible`](https://playwright.dev/docs/api/class-locator#locator-is-visible) | ✅ | |
225
- | [`last`](https://playwright.dev/docs/api/class-locator#locator-last) | ✅ | |
226
- | [`locator`](https://playwright.dev/docs/api/class-locator#locator-locator) | ✅ | |
227
- | [`normalize`](https://playwright.dev/docs/api/class-locator#locator-normalize) | ❌ | |
228
- | [`nth`](https://playwright.dev/docs/api/class-locator#locator-nth) | ✅ | |
229
- | [`or`](https://playwright.dev/docs/api/class-locator#locator-or) | ✅ | |
230
- | [`page`](https://playwright.dev/docs/api/class-locator#locator-page) | ✅ | |
231
- | [`press`](https://playwright.dev/docs/api/class-locator#locator-press) | ⚠️ | Unsupported options: `delay`, `signal`. |
232
- | [`pressSequentially`](https://playwright.dev/docs/api/class-locator#locator-press-sequentially) | ⚠️ | The `signal` option is unsupported. |
233
- | [`screenshot`](https://playwright.dev/docs/api/class-locator#locator-screenshot) | ❌ | |
234
- | [`scrollIntoViewIfNeeded`](https://playwright.dev/docs/api/class-locator#locator-scroll-into-view-if-needed) | ⚠️ | The `signal` option is unsupported. |
235
- | [`selectOption`](https://playwright.dev/docs/api/class-locator#locator-select-option) | ⚠️ | `ElementHandle` option values are unsupported. Unsupported options: `force`, `signal`. |
236
- | [`selectText`](https://playwright.dev/docs/api/class-locator#locator-select-text) | ⚠️ | Unsupported options: `force`, `signal`. |
237
- | [`setChecked`](https://playwright.dev/docs/api/class-locator#locator-set-checked) | ⚠️ | The `signal` option is unsupported. |
238
- | [`setInputFiles`](https://playwright.dev/docs/api/class-locator#locator-set-input-files) | ⚠️ | Accepts only in-memory `{ name, mimeType, buffer }` objects; file paths and directory uploads are unsupported. Empty `mimeType` throws instead of inferring a MIME type. The `signal` option is unsupported. |
239
- | [`tap`](https://playwright.dev/docs/api/class-locator#locator-tap) | ❌ | |
240
- | [`textContent`](https://playwright.dev/docs/api/class-locator#locator-text-content) | ✅ | |
241
- | [`toString`](https://playwright.dev/docs/api/class-locator#locator-to-string) | ⚠️ | String representations can omit options: `filter({ hasText: 'x' })` prints `filter(...)`, and `page.getByRole('button', { disabled: true })` omits `disabled`. |
242
- | [`type`](https://playwright.dev/docs/api/class-locator#locator-type) | ⚠️ | The `signal` option is unsupported. |
243
- | [`uncheck`](https://playwright.dev/docs/api/class-locator#locator-uncheck) | ⚠️ | The `signal` option is unsupported. |
244
- | [`waitFor`](https://playwright.dev/docs/api/class-locator#locator-wait-for) | ⚠️ | The `signal` option is unsupported. |
245
- | [`waitForFunction`](https://playwright.dev/docs/api/class-locator#locator-wait-for-function) | ❌ | |
175
+ | API | Status | Notes |
176
+ | ------------------------------------------------------------------------------------------------------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
177
+ | [`all`](https://playwright.dev/docs/api/class-locator#locator-all) | ✅ | |
178
+ | [`allInnerTexts`](https://playwright.dev/docs/api/class-locator#locator-all-inner-texts) | ✅ | |
179
+ | [`allTextContents`](https://playwright.dev/docs/api/class-locator#locator-all-text-contents) | ✅ | |
180
+ | [`and`](https://playwright.dev/docs/api/class-locator#locator-and) | ✅ | |
181
+ | [`ariaSnapshot`](https://playwright.dev/docs/api/class-locator#locator-aria-snapshot) | ✅ | |
182
+ | [`blur`](https://playwright.dev/docs/api/class-locator#locator-blur) | ✅ | |
183
+ | [`boundingBox`](https://playwright.dev/docs/api/class-locator#locator-bounding-box) | ✅ | |
184
+ | [`check`](https://playwright.dev/docs/api/class-locator#locator-check) | ✅ | |
185
+ | [`clear`](https://playwright.dev/docs/api/class-locator#locator-clear) | ⚠️ | The `force` option is unsupported. |
186
+ | [`click`](https://playwright.dev/docs/api/class-locator#locator-click) | ⚠️ | The `steps` option is unsupported. The action does not wait for navigation. |
187
+ | [`contentFrame`](https://playwright.dev/docs/api/class-locator#locator-content-frame) | 🚫 | Iframe realms are outside the single-document boundary. |
188
+ | [`count`](https://playwright.dev/docs/api/class-locator#locator-count) | ✅ | |
189
+ | [`dblclick`](https://playwright.dev/docs/api/class-locator#locator-dblclick) | ⚠️ | The `steps` option is unsupported. |
190
+ | [`describe`](https://playwright.dev/docs/api/class-locator#locator-describe) | ✅ | |
191
+ | [`description`](https://playwright.dev/docs/api/class-locator#locator-description) | ⚠️ | `describe('').description()` returns `''` instead of `null`; `describe('x').filter({}).description()` returns `null` instead of `'x'`. |
192
+ | [`dispatchEvent`](https://playwright.dev/docs/api/class-locator#locator-dispatch-event) | ⚠️ | `JSHandle`/`ElementHandle` values in `eventInit` are not unwrapped. |
193
+ | [`dragTo`](https://playwright.dev/docs/api/class-locator#locator-drag-to) | ❌ | |
194
+ | [`drop`](https://playwright.dev/docs/api/class-locator#locator-drop) | ❌ | |
195
+ | [`elementHandle`](https://playwright.dev/docs/api/class-locator#locator-element-handle) | ⚠️ | Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
196
+ | [`elementHandles`](https://playwright.dev/docs/api/class-locator#locator-element-handles) | ⚠️ | Returned `ElementHandle` methods and options differ; see [ElementHandle compatibility](#elementhandle-compatibility). |
197
+ | [`evaluate`](https://playwright.dev/docs/api/class-locator#locator-evaluate) | ⚠️ | Rejects `exposeFunctions: true`. |
198
+ | [`evaluateAll`](https://playwright.dev/docs/api/class-locator#locator-evaluate-all) | ✅ | |
199
+ | [`evaluateHandle`](https://playwright.dev/docs/api/class-locator#locator-evaluate-handle) | ❌ | |
200
+ | [`fill`](https://playwright.dev/docs/api/class-locator#locator-fill) | ⚠️ | The `force` option is unsupported. |
201
+ | [`filter`](https://playwright.dev/docs/api/class-locator#locator-filter) | ✅ | |
202
+ | [`first`](https://playwright.dev/docs/api/class-locator#locator-first) | ✅ | |
203
+ | [`focus`](https://playwright.dev/docs/api/class-locator#locator-focus) | ✅ | |
204
+ | [`frameLocator`](https://playwright.dev/docs/api/class-locator#locator-frame-locator) | 🚫 | Iframe realms are outside the single-document boundary. |
205
+ | [`getAttribute`](https://playwright.dev/docs/api/class-locator#locator-get-attribute) | ✅ | |
206
+ | [`getByAltText`](https://playwright.dev/docs/api/class-locator#locator-get-by-alt-text) | ✅ | |
207
+ | [`getByLabel`](https://playwright.dev/docs/api/class-locator#locator-get-by-label) | ✅ | |
208
+ | [`getByPlaceholder`](https://playwright.dev/docs/api/class-locator#locator-get-by-placeholder) | ✅ | |
209
+ | [`getByRole`](https://playwright.dev/docs/api/class-locator#locator-get-by-role) | ✅ | |
210
+ | [`getByTestId`](https://playwright.dev/docs/api/class-locator#locator-get-by-test-id) | ✅ | |
211
+ | [`getByText`](https://playwright.dev/docs/api/class-locator#locator-get-by-text) | ✅ | |
212
+ | [`getByTitle`](https://playwright.dev/docs/api/class-locator#locator-get-by-title) | ✅ | |
213
+ | [`hideHighlight`](https://playwright.dev/docs/api/class-locator#locator-hide-highlight) | ✅ | |
214
+ | [`highlight`](https://playwright.dev/docs/api/class-locator#locator-highlight) | ✅ | |
215
+ | [`hover`](https://playwright.dev/docs/api/class-locator#locator-hover) | ✅ | |
216
+ | [`innerHTML`](https://playwright.dev/docs/api/class-locator#locator-inner-html) | ✅ | |
217
+ | [`innerText`](https://playwright.dev/docs/api/class-locator#locator-inner-text) | ✅ | |
218
+ | [`inputValue`](https://playwright.dev/docs/api/class-locator#locator-input-value) | ✅ | |
219
+ | [`isChecked`](https://playwright.dev/docs/api/class-locator#locator-is-checked) | ✅ | |
220
+ | [`isDisabled`](https://playwright.dev/docs/api/class-locator#locator-is-disabled) | ✅ | |
221
+ | [`isEditable`](https://playwright.dev/docs/api/class-locator#locator-is-editable) | ✅ | |
222
+ | [`isEnabled`](https://playwright.dev/docs/api/class-locator#locator-is-enabled) | ✅ | |
223
+ | [`isHidden`](https://playwright.dev/docs/api/class-locator#locator-is-hidden) | ✅ | |
224
+ | [`isVisible`](https://playwright.dev/docs/api/class-locator#locator-is-visible) | ✅ | |
225
+ | [`last`](https://playwright.dev/docs/api/class-locator#locator-last) | ✅ | |
226
+ | [`locator`](https://playwright.dev/docs/api/class-locator#locator-locator) | ✅ | |
227
+ | [`normalize`](https://playwright.dev/docs/api/class-locator#locator-normalize) | ❌ | |
228
+ | [`nth`](https://playwright.dev/docs/api/class-locator#locator-nth) | ✅ | |
229
+ | [`or`](https://playwright.dev/docs/api/class-locator#locator-or) | ✅ | |
230
+ | [`page`](https://playwright.dev/docs/api/class-locator#locator-page) | ✅ | |
231
+ | [`press`](https://playwright.dev/docs/api/class-locator#locator-press) | ✅ | |
232
+ | [`pressSequentially`](https://playwright.dev/docs/api/class-locator#locator-press-sequentially) | ✅ | |
233
+ | [`screenshot`](https://playwright.dev/docs/api/class-locator#locator-screenshot) | ❌ | |
234
+ | [`scrollIntoViewIfNeeded`](https://playwright.dev/docs/api/class-locator#locator-scroll-into-view-if-needed) | ✅ | |
235
+ | [`selectOption`](https://playwright.dev/docs/api/class-locator#locator-select-option) | ⚠️ | `ElementHandle` option values are unsupported. The `force` option is unsupported. |
236
+ | [`selectText`](https://playwright.dev/docs/api/class-locator#locator-select-text) | ⚠️ | The `force` option is unsupported. |
237
+ | [`setChecked`](https://playwright.dev/docs/api/class-locator#locator-set-checked) | ✅ | |
238
+ | [`setInputFiles`](https://playwright.dev/docs/api/class-locator#locator-set-input-files) | ⚠️ | Accepts only in-memory `{ name, mimeType, buffer }` objects; file paths and directory uploads are unsupported. Empty `mimeType` throws instead of inferring a MIME type. |
239
+ | [`tap`](https://playwright.dev/docs/api/class-locator#locator-tap) | ❌ | |
240
+ | [`textContent`](https://playwright.dev/docs/api/class-locator#locator-text-content) | ✅ | |
241
+ | [`toString`](https://playwright.dev/docs/api/class-locator#locator-to-string) | ⚠️ | String representations can omit options: `filter({ hasText: 'x' })` prints `filter(...)`, and `page.getByRole('button', { disabled: true })` omits `disabled`. |
242
+ | [`type`](https://playwright.dev/docs/api/class-locator#locator-type) | ✅ | |
243
+ | [`uncheck`](https://playwright.dev/docs/api/class-locator#locator-uncheck) | ✅ | |
244
+ | [`waitFor`](https://playwright.dev/docs/api/class-locator#locator-wait-for) | ✅ | |
245
+ | [`waitForFunction`](https://playwright.dev/docs/api/class-locator#locator-wait-for-function) | ❌ | |
246
246
 
247
247
  ### ElementHandle compatibility
248
248