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
Pavel Feldman
8b018f6b41
chore: make role name case-insensitive ( #17888 )
2022-10-06 14:35:10 -07:00
Pavel Feldman
ff15fcf911
chore: hide selector factories ( #17844 )
2022-10-05 12:00:01 -07:00
Dmitry Gozman
2bcd9ce9ae
chore: internal selectors ( #17827 )
...
- Rename internal selectors `has`, `control` and `attr` to
`internal:has`, `internal:control` and `internal:attr`.
- Fix `getByLabel()` to respect strictness, by introducing
`internal:label` selector.
- Move tests essential for ports to `selectors-by.spec`.
2022-10-05 08:45:10 -07:00
Dmitry Gozman
a9c02b9753
fix(locators): properly escape various locator methods ( #17798 )
...
References #17604 .
2022-10-04 13:21:38 -07:00
Pavel Feldman
8810b55504
feat(api): shorted getByLabel, getByPlaceholder ( #17816 )
2022-10-04 10:29:26 -07:00
Pavel Feldman
bfb8a43ece
feat(api): all getByTitle, getByAltText ( #17724 )
2022-09-29 21:45:44 -07:00
Pavel Feldman
083fb4401c
feat(api): add getByPlaceholderText ( #17722 )
2022-09-29 18:12:49 -07:00
Pavel Feldman
b4ee84fb0c
chore(api): remove locator.get() ( #17709 )
2022-09-29 12:50:52 -07:00
Pavel Feldman
e3a2316013
feat(api): add getByLabelText ( #17684 )
2022-09-29 11:06:58 -07:00
Pavel Feldman
2a85806cc0
chore: follow up to getTestById, escape it ( #17650 )
2022-09-28 09:23:47 -07:00
Pavel Feldman
d8f67eb75d
feat(api): introduce getByTestId ( #17645 )
2022-09-27 21:06:07 -07:00
Pavel Feldman
d9a28bd244
feat(api): introduce get/getByText/getByRole ( #17577 )
2022-09-27 16:13:56 -07:00
Pavel Feldman
df143031e7
chore: move protocol and trace types into the top-level packages ( #17486 )
2022-09-20 18:41:51 -07:00
Yury Semikhatsky
cb81d23ad6
fix(selectors): max hasText regex against nested nodes ( #15638 )
2022-07-14 08:23:11 -07:00