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
Pavel Feldman
5d799606c3
chore: resolve top-level vs dependency after cli filtering ( #24216 )
2023-07-13 17:54:08 -07:00
Andrey Lushnikov
615f5afb2b
feat(firefox): roll Firefox to 1420 ( #24205 )
...
Fixes https://github.com/microsoft/playwright/issues/22753
2023-07-13 03:54:47 -07:00
Pavel Feldman
067faa50d7
chore: migrate Promise.race to scopes to prevent leaks ( #24160 )
2023-07-11 10:38:08 -07:00
Pavel Feldman
67ad2c2bf4
feat(ui): render all console / network messages in trace ( #24115 )
2023-07-10 12:56:56 -07:00
Andrey Lushnikov
11dce8d127
feat(firefox): roll Firefox to 1417 ( #24069 )
...
Fixes https://github.com/microsoft/playwright/issues/23280
2023-07-06 12:18:02 -07:00
Andrey Lushnikov
ea3a29eacd
feat(firefox): roll Firefox to 1415 ( #24046 )
...
Fixes https://github.com/microsoft/playwright/issues/23618
2023-07-05 11:58:38 -07:00
Dmitry Gozman
92c738b14a
test: unflake some tests ( #23984 )
2023-06-30 13:08:18 -07:00
Dmitry Gozman
1d0b48f18b
fix(route): handle escapes in the glob pattern ( #23932 )
...
Fixes #23303 .
2023-06-28 16:33:04 -07:00
Dmitry Gozman
b0b429fed0
feat: support bigint in evaluates ( #23930 )
...
Fixes #22719 .
2023-06-28 08:55:45 -07:00
Ben Hofferber
752176fd23
feat(goto): better navigation error message ( #23609 )
...
While this log message is only a sanity check, it is still beneficial to
have a message that can better inform what is happening when this
occurs.
2023-06-21 11:10:35 -07:00
Max Schmitt
5927b5e92b
test: unflake 'should return url with basic auth info' test ( #23798 )
...
On android there is no localhost. We should never use just localhost.
2023-06-20 11:06:30 +02:00
Dmitry Gozman
fe5c9dad4d
fix(locators): allow identical frameLocators inside and/or/has ( #23740 )
...
So, the following will work:
```
page.frameLocator('iframe').locator('span').or(page.frameLoactor('iframe').locator('div'))
```
The following will not work, because frame locators are not exactly the
same:
```
page.frameLocator('#iframe1').locator('span').or(page.frameLoactor('#iframe2').locator('div'))
```
Also improve the error message to be more readable and include the
locator.
Fixes #23697 .
2023-06-19 15:22:26 -07:00
Andrey Lushnikov
e171194c86
feat(firefox): roll Firefox to 1414 ( #23768 )
...
- roll Firefox stable to 1414
- roll Firefox beta to 1414
Fixes #23138
2023-06-17 12:10:20 -07:00
Dmitry Gozman
09b1e3ffa9
fix(chromium): response.body() for worker requests should work ( #23764 )
...
Previously, worker requests used page's session to call
`Network.getResponseBody`.
Fixes #23750 .
2023-06-16 20:44:32 -07:00
Max Schmitt
421872f130
test: rewrite 'should fulfill json' test ( #23735 )
2023-06-15 18:46:19 +02:00
Dmitry Gozman
c80a23842b
fix(css): relative-to-scope selectors work ( #23665 )
...
Chained selectors where the second part starts with a scope did not work
before:
```ts
page.locator('div').locator(':scope + span')
page.locator('div >> +span')
```
2023-06-13 10:27:25 -07:00
Dmitry Gozman
dd417d83d9
fix(locators): escape >> inside a regular expression ( #23631 )
...
To avoid selector being parsed as a chain.
Fixes #23540 .
2023-06-12 10:34:37 -07:00
Dmitry Gozman
5cfd6d9fe9
fix(cr network): emit sw-handled requests when routing is enabled ( #23589 )
...
Previously, such requests were skipped because they never receive
`Fetch.requestPaused` as there was no real network.
Also cleanup some redundant tests and move them from chromium-only file.
Fixes #23424 .
2023-06-08 10:33:28 -07:00
Max Schmitt
3c2a8fa306
chore: enable no-floating-promises ESLint rule for tests ( #23376 )
...
https://github.com/microsoft/playwright/issues/23339
2023-06-02 21:59:12 +02:00
Dmitry Gozman
1d5add6d99
test: fix should not fulfill with redirect status ( #23459 )
2023-06-01 23:11:03 -07:00
Dmitry Gozman
6bb5c0a549
fix: make evaluate not wait for scheduled navigations ( #23402 )
...
Fixes #23141 .
2023-05-31 14:08:44 -07:00
Dmitry Gozman
2505d48b32
test: skip and unflake tests ( #23399 )
...
- `should respect tracesDir and name` does not work with service mode;
- `isVisible during navigation should not throw` had a short timeout.
2023-05-31 10:52:29 -07:00
João Neves
7e6e5f0706
feat: Support React forwards refs and memo ( #23262 )
...
This PR fixes the react selector behavior to support components that are
wrapped by the memo or forwardRef React builtin functions.
Previously these components couldn't be selected. This PR fixes that
behavior, enabling selecting those components.
Current behavior:
```
const Foo = memo(() => <div id="foo_component" />);
Foo.displayName = "Foo";
...
playwright.$("_react=Foo") -> undefined
```
Fixed behavior:
```
const Foo = memo(() => <div id="foo_component" />);
Foo.displayName = "Foo";
...
playwright.$("_react=Foo") -> <div id ="foo_component" />
```
2023-05-30 17:14:47 -07:00
Max Schmitt
2710fd8d6f
fix: should be able to upload multiple large files ( #23360 )
...
Fixes https://github.com/microsoft/playwright/issues/23258
2023-05-30 18:41:09 +02:00
Dmitry Gozman
00b34dddb2
chore: move TestServer under test/ ( #23287 )
2023-05-25 15:11:16 -07:00
Yury Semikhatsky
e0600f4799
test: enable passing request type test ( #23273 )
...
Fixes #22812
2023-05-25 09:43:41 -07:00
Jasiel Guillén
700062c836
feat(screenshot): Add customizable color option for masked elements ( #23185 )
...
I added a new option to the screenshot method to customize the color of
the box when we want to mask some elements for the screenshot.
The default color is pink `#FF00FF`, but with this new option you can
specify the color you like the most, like a nice green `#00FF00`:
```js
await page.screenshot({
mask: [page.locator('div').nth(5)],
maskColor: "#00FF00",
})
```

---------
Signed-off-by: Jasiel Guillén <darkensses@gmail.com>
2023-05-22 18:44:44 -07:00
Yury Semikhatsky
33f3a6002d
test: xhr request type for main resource url ( #23174 )
2023-05-19 17:59:17 -07:00
Dmitry Gozman
be7984bdc9
fix(unroute): do not compare regexp instances ( #23101 )
...
References #23092 .
2023-05-17 16:27:32 -07:00
Playwright Service
aa6eb41466
feat(webkit): roll to r1848 ( #23032 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-05-16 12:13:58 +02:00
Max Schmitt
17ab777db5
chore: set min viewport for WK on Win to 250x240 ( #22969 )
...
Follow-up for https://github.com/microsoft/playwright/pull/22956 .
2023-05-14 16:59:15 +02:00
Playwright Service
ba0c4951c3
feat(firefox-beta): roll to r1408 ( #22978 )
...
Fixes https://github.com/microsoft/playwright/issues/21760
---------
Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2023-05-12 09:27:08 -07:00
Dmitry Gozman
f2ad5bbfbb
fix(isVisible): return false during navigation ( #22943 )
...
Instead of throwing "Execution context was destroyed" error.
Drive-by: improve internal error messages for `ScopedRace` errors.
Fixes #22925 .
2023-05-10 16:56:59 -07:00
Dmitry Gozman
80f46892cd
fix(getByLabel): ignore empty aria-label ( #22935 )
...
Accessible name computation ignores empty aria-label, and so should
getByLabel.
Fixes #22915 .
2023-05-10 10:38:46 -07:00
Alexander Sorokin
cbf4f39957
fix: React selectors should work after unmount ( #22750 )
...
Fixes #22729
2023-05-10 06:18:01 -07:00
Pavel Feldman
2ead6e530f
docs: remove the networkidle mentions ( #22906 )
...
Fixes https://github.com/microsoft/playwright/issues/22897
2023-05-09 09:34:57 -07:00
Pavel Feldman
5fb426e7db
fix(webkit): do not update console counter on unhandled rejections ( #22890 )
...
Fixes https://github.com/microsoft/playwright/issues/22886
2023-05-08 18:50:40 -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
42328478ea
feat: make console/dialog events based on subscription ( #22835 )
...
This way we do not send events from the server unless the client is
interested.
Fixes #22621 .
2023-05-05 11:12:33 -07:00
Andrey Lushnikov
99d4887053
feat(firefox): roll to r1403 ( #22540 )
...
Fixes https://github.com/microsoft/playwright/issues/22082
Fixes https://github.com/microsoft/playwright/issues/20993
2023-04-21 21:45:41 -07:00
Max Schmitt
f6aa9f49ce
chore: make evaluate work with busted Array.prototype.map/push ( #22528 )
...
Fixes https://github.com/microsoft/playwright/issues/22460
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-04-21 19:52:13 +02:00
☃ Elliot Shepherd
106fa45f50
feat(route): accept timeout to fetch ( #22475 )
...
Fixes : #22474
2023-04-20 08:41:33 -07:00
Pavel Feldman
d45efe881f
chore: don't leak from waitFor ( #22465 )
...
Fixes https://github.com/microsoft/playwright/issues/22458
2023-04-18 11:11:46 -07:00
Andrey Lushnikov
b7d06d4d24
test: worker network attribution is still not fixed in Firefox 113 ( #22390 )
...
We'll need to wait until it is fixed upstream.
References https://github.com/microsoft/playwright/issues/21760
2023-04-13 13:36:17 -07:00
Playwright Service
a5749c033d
feat(firefox): roll to r1396 ( #22327 )
...
Fixes https://github.com/microsoft/playwright/issues/21995
2023-04-11 08:49:44 -07:00
Andrey Lushnikov
8b8385b6cb
test: remove faulty test ( #22321 )
...
Turns out we cannot guarantee order of events in Firefox: it might
close the page before we get a response from renderer.
Thus removing a faulty test.
References https://github.com/microsoft/playwright/issues/20093
2023-04-10 20:12:39 -07:00
Yury Semikhatsky
8d2502ee62
test: make page-leaks tests pass in electron ( #22277 )
...
They've been failing
https://devops.playwright.dev/flakiness.html#filter_spec=page%2Fpage-leaks.spec.ts&test_parameter_filters=%5B%5D×tamp=1680901928195
2023-04-07 17:20:49 -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
Andrey Lushnikov
29643a7bff
test: add regression tests for clicking ( #22221 )
...
https://github.com/microsoft/playwright/issues/21995
2023-04-05 13:20:39 -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
Playwright Service
8dd431745d
feat(firefox): roll to r1394 ( #22199 )
...
Fixes https://github.com/microsoft/playwright/issues/21621
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2023-04-05 11:39:23 -07:00
Dmitry Gozman
8bc7ed0469
test: remove element being dragged before drop ( #22177 )
...
This scenario hangs in Firefox, waiting for response to `mouseup` event.
References #21621 .
2023-04-03 18:42:29 -07:00
Dmitry Gozman
ab85b23e67
fix(expect): report expect "Timed out" when it actually does ( #22174 )
...
Previously, it would say "Timed out" when page was closed at test
timeout, or not say "Timed out" when at least one element matched.
Fixes #21664 .
2023-04-03 15:06:13 -07:00
Dmitry Gozman
26c00a97a5
fix(expect): do not produce logs twice ( #22171 )
2023-04-03 15:05:40 -07:00
Pavel Feldman
3b9e62432d
chore: do not leak on clicks ( #22129 )
...
Fixes #22115
2023-03-31 18:18:45 -07:00
Pavel Feldman
0d9ec60dc7
chore: implement jsHandle._objectCount in chromium ( #22127 )
2023-03-31 15:52:01 -07:00
MarcNum
fbdafc5fe3
feat: Adding trace option 'on-all-retries' ( #21985 )
...
Fixes : #21860
2023-03-31 13:04:24 -07:00
Max Schmitt
47c669caf2
test: fix service tests ( #22111 )
...
<img width="805" alt="image"
src="https://user-images.githubusercontent.com/17984549/229117984-1c70541b-7941-40e2-950d-a699e0fc4cc4.png ">
2023-03-31 10:58:08 -07:00
Dmitry Gozman
a95ced0fef
fix(waitFor): when frameLocator does not match, resolve hidden/detached states ( #22119 )
...
Fixes #21879 .
2023-03-31 10:54:07 -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
Pavel Feldman
968abd27d5
chore: do not use attributes for trace target annotation ( #22075 )
...
Fixes: https://github.com/microsoft/playwright/issues/22004
2023-03-29 23:17:17 -07:00
Dmitry Gozman
548e4a0c0f
fix(role): account for unslotted elements being hidden for aria ( #22070 )
...
When element is not assigned to any slot in the shadow root, it is not
rendered and is considered hidden for ARIA in all browsers.
In Chromium/Firefox we use `Element.checkVisibility` that already
handles this, but in WebKit we have to check it manually.
Fixes #21487 .
2023-03-29 17:08:05 -07:00
Dmitry Gozman
6929214dbf
feat(expect): expect(locator).toBeAttached() ( #22067 )
...
Fixes #13467 .
2023-03-29 11:09:17 -07:00
Andrey Lushnikov
0b170ddc12
test: enable some of the previously disabled tests ( #22047 )
...
Fixes https://github.com/microsoft/playwright/issues/21549
2023-03-29 10:52:55 -07:00
Playwright Service
d8f5a3f2ce
feat(firefox-beta): roll to r1394 ( #22052 )
...
References https://github.com/microsoft/playwright/issues/21760
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2023-03-29 10:47:31 -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
Yury Semikhatsky
e7d670e27b
test: waitFor(hidden) should succeed when frame is not in dom ( #21880 )
...
Failing test for https://github.com/microsoft/playwright/issues/21879
2023-03-22 08:56:50 -07:00
Dmitry Gozman
8accabdb59
test: gardening ( #21814 )
...
Notable changes:
- `page-event-crash` is not a page test, moving out of page/.
- One of the expect tests is directly covered by another, merging them.
2023-03-20 12:52:52 -07:00
Yury Semikhatsky
98befd8a16
test: run crash tests in separate worker ( #21759 )
...
Running crash tests in its own worker should ensure that the browser
logs from different tests are not interleaved:
<img width="1088" alt="image"
src="https://user-images.githubusercontent.com/9798949/225965857-9152a88e-a775-4935-955a-dd7e6b88409a.png ">
2023-03-17 10:36:01 -07:00
Andrey Lushnikov
f192a74c5d
test: reenable screenshot test on firefox ( #21738 )
...
Fixes #20522
2023-03-17 01:37:39 -07:00
Pavel Feldman
c45d8749b0
chore: split trace events into phases ( #21696 )
2023-03-15 22:33:40 -07:00
Yury Semikhatsky
716d451be5
test: use toHaveURL in the new test ( #21667 )
2023-03-14 09:23:00 -07:00
Yury Semikhatsky
c691d1f436
test: skip "should respect the drop effect" in headed ( #21648 )
...
https://github.com/microsoft/playwright/issues/21646
2023-03-13 19:04:09 -07:00
Yury Semikhatsky
6b3e7faad5
test: url bar navigation vs js redirect ( #21640 )
...
The tests document current behavior when url bar navigation competes
with a js redirect.
Fixes #20749
2023-03-13 17:53:39 -07:00
Playwright Service
4e807f9824
feat(firefox): roll to r1390 ( #21591 )
2023-03-13 16:43:49 -07:00
Andrey Lushnikov
8abe9fcf22
tree gardening: disable & assign failing tests ( #21575 )
...
References https://github.com/microsoft/playwright/issues/21574
References https://github.com/microsoft/playwright/issues/21549
2023-03-10 12:04:25 -08:00
Andrey Lushnikov
870edd1aae
feat(firefox): roll Firefox to 1387 ( #21542 )
...
Fixes #21109
Fixes #21430
2023-03-10 09:25:54 -08:00
Andrey Lushnikov
7a1c5b2aa3
test: make the tree green ( #21551 )
...
References https://github.com/microsoft/playwright/issues/20522
References https://github.com/microsoft/playwright/issues/20993
References https://github.com/microsoft/playwright/issues/21435
References https://github.com/microsoft/playwright/issues/21512
References https://github.com/microsoft/playwright/issues/21549
References https://github.com/microsoft/playwright/issues/21550
2023-03-09 16:56:29 -08:00
Max Schmitt
77c9641215
test: make Android bots green ( #21450 )
2023-03-07 17:53:39 +01:00
Max Schmitt
41dc45d471
test: add test for page.goto with hash at the end ( #21437 )
...
https://github.com/microsoft/playwright/issues/21430
2023-03-07 17:53:30 +01:00
Dmitry Gozman
0c5d46bb94
feat: allow chaining locators with Locator.locator(anotherLocator) ( #21391 )
2023-03-03 14:50:53 -08:00
Andrey Lushnikov
bfc895787f
fix(firefox): fix reload with hash URLs ( #21322 )
...
Fixes #21145
2023-03-01 18:56:30 -08:00
Andrey Lushnikov
4d3b056f27
test: add more tests for reload ( #21296 )
...
Make sure `page.reload()` doesn't reload a related popup and
only reloads target page.
2023-03-01 10:52:55 -08:00
Andrey Lushnikov
b607c92651
test: add a regression test for reload bug in firefox ( #21282 )
...
References https://github.com/microsoft/playwright/issues/20791
2023-02-28 16:05:12 -08:00
Dmitry Gozman
27027658dc
chore: fix all Proxy() to account for symbol properties ( #21272 )
...
Fixes #20940 .
2023-02-28 12:45:14 -08:00
Andrey Lushnikov
dd9a8da901
test: fix retargeting test on firefox ( #21157 )
...
The test was regressed in
https://github.com/microsoft/playwright/pull/21124
Fixes #21141
2023-02-23 07:35:58 -08:00
Max Schmitt
8b8444dacc
test: page.reload() on a page with a hash ( #21152 )
...
https://github.com/microsoft/playwright/issues/21145
2023-02-23 13:22:22 +01:00
Andrey Lushnikov
434fa470e3
test: fix page.goto test on Firefox ( #21132 )
...
Turns out Firefox can yield either of the two errors, depending
on the stage of the pending navigation.
2023-02-22 19:18:49 -08:00
Yury Semikhatsky
f61d02e46f
test: update selection expectations after roll ( #21124 )
...
https://github.com/microsoft/playwright/issues/20820
2023-02-22 17:24:04 -08:00
Andrey Lushnikov
3ff3567c89
test: update context menu tests ( #21126 )
...
It turns out these new contextmenu-based tests do not work on
Chromium-based browsers on Windows.
We consider context menu support a best-effort, so we skip them
for now.
2023-02-22 17:22:56 -08:00
Yury Semikhatsky
2bb6bc7ad0
test: mark new test as failing in ff ( #21122 )
...
The test is failing for overridden Date in Firefox.
#21109
2023-02-22 16:36:39 -08:00
Yury Semikhatsky
d6dae8ea1f
fix: eval serialization w/ overridden URL/RegExp/Date ( #21112 )
...
Fixes #21109
2023-02-22 15:45:42 -08:00
Pavel Feldman
3f8f2a0fdd
chore: do not use library stack capturer in test runner ( #21075 )
2023-02-21 19:24:17 -08:00
Andrey Lushnikov
07bb483156
test: add tests for input with open context menu ( #21081 )
...
These might be failing on certain platforms and browsers.
References #20823
2023-02-21 15:57:29 -08:00
Pavel Feldman
06fc72b6ed
revert( #12706 ): also fix related bugs it introduced ( #21070 )
2023-02-21 14:15:11 -08:00
Andrey Lushnikov
72942e81d5
chore: fixes to toBeInViewport ( #20870 )
2023-02-13 15:21:40 -08:00