94 Commits

Author SHA1 Message Date
Max Schmitt
b25cb7f3d1
chore: use 'Clear' step name for locator.clear() (#36208) 2025-06-05 13:23:11 +01:00
Pavel Feldman
e0365747ce
chore: two-line trace view (2) (#36055) 2025-05-22 14:50:54 -07:00
Pavel Feldman
6a2a70619a
chore: two-line trace view (1) (#36025) 2025-05-22 09:49:37 -07:00
Dmitry Gozman
6532d7c7d6
chore: move timeout handling to the client (#35988) 2025-05-20 15:51:33 +01:00
Pavel Feldman
313de29fab
feat(locator): introduce locator.describe() (#35969) 2025-05-16 13:40:47 -07:00
Pavel Feldman
a6b4b222ed
chore: upstream the frame tree snapshot (#35917) 2025-05-09 16:15:16 -07:00
Pavel Feldman
9de2bd49e4
Revert "chore: upstream the frame tree snapshot" (#35911) 2025-05-09 11:28:25 -07:00
Pavel Feldman
0876b99a4d
chore: upstream the frame tree snapshot (#35902) 2025-05-08 15:18:28 -07:00
Pavel Feldman
f89d0ae870
chore: make refs & emitGeneric private for mcp (#35888) 2025-05-08 08:33:10 -07:00
Pavel Feldman
7ec70c61d7
feat(aria): emit generic nodes (#35686) 2025-04-21 17:36:10 -07:00
Pavel Feldman
807d9066d6
chore: allow generating aria references (#35132) 2025-03-10 14:39:37 -07:00
Dmitry Gozman
3ce9ae6a7d
chore: replace locator.visible with filter({ visible }) (#34947) 2025-02-27 13:44:53 +00:00
Dmitry Gozman
ed0bf35435
feat: locator.visible (#34905) 2025-02-25 11:48:15 +00:00
Pavel Feldman
f54478a23e
chore: move utils that are user in server to server/utils (3) (#34739) 2025-02-12 09:34:01 -08:00
Pavel Feldman
5d500dde22
chore: introduce platform for client (1) (#34683) 2025-02-10 10:22:32 -08:00
Pavel Feldman
4a7f6a6ef0
chore: organize imports in playwright-core (#34680) 2025-02-07 13:54:01 -08:00
Pavel Feldman
bd2fdd0f20
chore: land experimental tools (#34503) 2025-01-27 14:49:38 -08:00
Yury Semikhatsky
c66af9c525
chore: make expect timeout field required in the protocol (#33309) 2024-10-25 15:26:41 -07:00
Pavel Feldman
94321fef1c
chore: implement locator.ariaSnapshot (#33125) 2024-10-15 18:47:26 -07:00
Dmitry Gozman
59689c9c97
feat(addLocatorHandler): various improvements (#30494)
- Automatically waiting for the overlay locator to be hidden, with
`allowStayingVisible` opt-out.
- `times: 1` option.
- `removeLocatorHandler(locator, handler)` method.
- Passing `locator` as first argument to `handler`.

Fixes #30471. Fixes #30424. Fixes #29779.
2024-04-24 15:19:12 -07:00
Dmitry Gozman
95d649b406
feat: address api review feedback for 1.43 (#30066)
- Update docs for `trace: retain-on-first-failure`.
- Update docs for `devtools` option.
- Rename `Locator.enterFrame()` to `Locator.contentFrame()`.
- Rename `FrameLocator.exitFrame()` to `FrameLocator.owner()`.
2024-03-25 07:42:13 -07:00
Dmitry Gozman
70e6cdac57
feat: enterFrame/exitFrame (#29992)
This introduces `Locator.enterFrame()` and `FrameLocator.exitFrame()` to
convert between locator and frame locator.

Fixes #29336.
2024-03-18 13:42:08 -07:00
Max Schmitt
736c0efd43
chore: use more explicit awaits when returning in client (#28443) 2023-12-07 20:13:35 -08:00
Dmitry Gozman
5488c03d7f
chore: make asLocator() always safe (#28207) 2023-11-16 16:31:34 -08:00
Pavel Feldman
9fe037fb63
chore: populate matcherResult in web assertions (#27133)
Ref https://github.com/microsoft/playwright/issues/26929
2023-09-16 14:24:10 -07:00
Dmitry Gozman
c4e79eb6ed
feat: replace Locator.type with Locator.pressSequentially (#26624)
Also deprecate `Locator.type`, `Frame.type`, `Page.type` and
`ElementHandle.type`, but not `Keyboard.type`.

References #24614.
2023-08-22 15:21:00 -07:00
Dmitry Gozman
97d55e275d
fix(locator): locator(locator) method uses internal:chain instead of >> (#24235)
Usually, we can just chain two locators with `>>` to implement
`Locator.locator(locator)`. However, this does not play nicely with more
advanced inner locators like `or` and `and`:

```ts
const child = page.locator('input').or(page.locator('button'));
page.locator('parent').locator(child);
```

One would expect the above to locate "input or button" inside a
"parent". However, currently it locates "input inside a parent" or
"button", because it's translated to `parent >> input >>
internal:or="button"`.

To fix this, we have to wrap inner locator into `internal:chain` and
query it separately from the parent.

Fixes #23724.
2023-07-14 12:21:45 -07:00
Dmitry Gozman
160888df99
feat(locators): reland locator.and(locator) (#22850)
Removed in #22223.
Fixes #22585.
2023-05-05 11:14:01 -07:00
Dmitry Gozman
08cef43e82
feat(locator): remove locator.and and locator.not (#22223)
Not shipping for now, after API review.
2023-04-05 16:28:13 -07:00
Dmitry Gozman
35afb056ea
feat(locator): filter({ hasNotText }) (#22222)
The opposite of `filter({ hasText })`.
2023-04-05 14:13:28 -07:00
Dmitry Gozman
bc1de5f28d
feat(locator): filter({ hasNot }) (#22219)
This is the opposite of `filter({ has })`.
2023-04-05 12:45:46 -07:00
Dmitry Gozman
539d9873c2
feat: rename Locator.filter(locator) to Locator.and (#22101) 2023-03-30 14:41:30 -07:00
Dmitry Gozman
e6148bb725
feat: Locator.not(locator) (#22066) 2023-03-30 08:52:30 -07:00
Dmitry Gozman
525097d465
feat: Locator.filter(locator) (#21975)
Produces a locator that matches both locators.
Implemented through `internal:and` selector.

Fixes #19551.
2023-03-27 14:29:30 -07:00
Dmitry Gozman
d10fac4f6a
feat: Locator.or(locator) (#21884) 2023-03-22 15:28:59 -07:00
Dmitry Gozman
0c5d46bb94
feat: allow chaining locators with Locator.locator(anotherLocator) (#21391) 2023-03-03 14:50:53 -08:00
Pavel Feldman
06fc72b6ed
revert(#12706): also fix related bugs it introduced (#21070) 2023-02-21 14:15:11 -08:00
Andrey Lushnikov
1b8b20dc25
chore: drop locator.viewportRatio() method (#20131)
As per API review discussion, we'd like to refrain from
exposing this method.
2023-01-19 08:46:45 -08:00
Andrey Lushnikov
3883799d68
feat: introduce locator.viewportRatio (#19761)
References #8740
2023-01-05 10:49:32 -08:00
Pavel Feldman
3afd83c8cc
chore: withdraw locator.enumerate (#19484) 2022-12-15 10:13:56 -08:00
Pavel Feldman
17a0074459
feat(api): introduce Locator.all, enumerate (#19461) 2022-12-14 16:42:50 -08:00
Pavel Feldman
6cadc56ea3
feat(api): allow getByTestId(regex) (#19419) 2022-12-13 08:43:13 -08:00
Pavel Feldman
4e58b0c2ea
chore: render timed out error message when expect timeouts (#18863)
Fixes https://github.com/microsoft/playwright/issues/18859
2022-11-16 17:00:42 -08:00
Pavel Feldman
0355d8618f
chore: use provided value for the generated test id (#18631) 2022-11-08 12:04:43 -08:00
Pavel Feldman
8432d1592f
chore: expose new locator apis on window.playwright (#18595) 2022-11-07 09:06:13 -08:00
Jean-François Greffier
0fe1998c72
feat(api): add clear() (#18296)
Add `clear()` method as a convenience shortcut for `fill('')`.
Implemented for AndroidDevice, ElementHandle, Frame, Locator and Page.

Fixes https://github.com/microsoft/playwright/issues/14041
2022-10-25 12:56:11 -07:00
Dmitry Gozman
329b3eadb4
feat: locator.blur() (#18303)
Note this is only available on Locator. Fixes #10724.
2022-10-25 06:10:40 -07:00
Dmitry Gozman
48c44f2c78
fix(selectors): hasText and getByText exact match should consider full text (#18260)
Fixes #18259.
2022-10-21 16:29:45 -07:00
Pavel Feldman
84daeafb3a
chore: use internal locator for role (#18187) 2022-10-19 19:38:47 -07:00
Pavel Feldman
304a4ee8ec
chore: migrate to the internal:text selector (#18135) 2022-10-18 13:09:54 -07:00