Dmitry Gozman
ba5b460444
chore: move artifacts recording to TestLifecycleInstrumentation ( #30935 )
...
The spirit of this change is reverting #23153 . Since that time, we have
moved tracing and `artifactsDir` lifetime into the test runner, so the
reason for revert is mitigated.
Fixes #30287 , fixes #30718 , fixes #30959 .
2024-05-29 18:05:17 -07:00
Pavel Feldman
6675652269
chore: split client-side instrumentation into sync and async ( #31054 )
2024-05-28 14:29:57 -07:00
cavivie
a7599ad509
feat(api): add host option in launchServer options ( #30999 )
2024-05-27 11:24:23 +02:00
Pavel Feldman
964fe66ccc
chore: hint at unroute for handle errors ( #30949 )
2024-05-22 08:54:19 -07:00
Pavel Feldman
e7a11c0ca2
fix: propagate close reason to api context ( #30945 )
2024-05-21 18:05:58 -07:00
Yury Semikhatsky
042896472b
fix: route.continue should not change multipart form data body ( #30863 )
...
The bug was fixed in https://github.com/microsoft/playwright/pull/30734 .
This PR adds a test and updates interception logic to not send post data
when it is not modified.
Fixes https://github.com/microsoft/playwright/issues/30788
2024-05-20 16:36:57 -07:00
Yury Semikhatsky
fb319e6d3d
fix: match client step and server action by explicit stepId ( #30641 )
...
Matching bu `apiName@wallTime` fails when two actions start at the same
time, e.g. two parallel api requests. Moreover, it results in trace
actions that have parent set to themselves, which in turn causes
infinite loop in the trace viewer. To avoid this problems we write
stepId explicitly to the library trace and use those step ids to find
corresponding test runner steps.
The stepId is passed via zone in case of expect, because the protocol
step is quite deep in the call chain after or explicitly in case of API
call steps created by the test runner instrumentation.
2024-05-14 12:10:46 -07:00
Dmitry Gozman
776b04e5ea
feat: APIRequestContext dispose reason ( #30765 )
...
Similarly to page.close, we pass test-runner specific reason to
facilitate better error messages.
```
1) a.test.ts:10:11 › test
Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.
- Recommended fix: use a separate { request } in the test.
- Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.
See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.
9 |
10 | test('test', async () => {
> 11 | await context.fetch('http://example.com ');
| ^
12 | });
13 |
```
Closes #29260 .
2024-05-13 18:51:30 -07:00
Yury Semikhatsky
64b4ac1732
fix(electron): record har file ( #30748 )
...
Fixes https://github.com/microsoft/playwright/issues/30747
2024-05-10 15:32:01 -07:00
Yury Semikhatsky
ff35f651e6
chore: delete expired location handler from client map ( #30574 )
2024-05-01 13:04:21 -07:00
Dmitry Gozman
9bd2aea130
feat(locator handler): address api review feedback ( #30554 )
...
- Remove `handler` argument from `removeLocatorHandler`.
- Rename `allowStayingVisible` into `noWaitAfter`.
- Improve logging related to locator handler.
- Remove experimental badges.
2024-04-25 14:00:02 -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
Yury Semikhatsky
230a8437d3
feat(fetch): support FormData as multipart parameter ( #30489 )
...
Reference https://github.com/microsoft/playwright/issues/28070
2024-04-23 17:05:27 -07:00
Yury Semikhatsky
3bdbe4284e
fix(steps): make expect.toPass and expect.poll step containers ( #30389 )
...
Fixes https://github.com/microsoft/playwright/issues/30322
2024-04-16 16:18:37 -07:00
Yury Semikhatsky
73fce8fb98
chore: replace Zones with AsyncLocalStorage ( #30381 )
...
Reference https://github.com/microsoft/playwright/issues/30322
2024-04-16 12:51:20 -07:00
Max Schmitt
56a7adeb8a
test: unflake 'should not include trace resources from the previous chunks' test ( #30257 )
2024-04-12 19:48:53 +02:00
Dmitry Gozman
6d56b453ff
fix(connect): include websocket close reason in the error message ( #30203 )
...
When websocket disconnects during `browserType.connect()` call, the
error looks like this now:
```
browserType.connect: Custom error message received over WebSocket
```
Previously, it was a generic error:
```
browserType.connect: Target page, context or browser has been closed
```
2024-04-01 21:05:33 -07:00
Yury Semikhatsky
021c5c108c
chore: revert support of duplicate form data fields in multipart post data ( #30127 )
...
We want to adopt FormData API for the requests.
This is a revert of 4b3c596874 and
a849ea9741
Reference https://github.com/microsoft/playwright/issues/28070
2024-03-26 12:36:35 -07:00
Pavel Feldman
2de8a6b002
chore: move filter params into the clearCookies ( #30111 )
2024-03-26 08:12:26 -07:00
Yury Semikhatsky
a849ea9741
feat(fetch): multiple fields with the same name in post data ( #30104 )
...
Rerefence https://github.com/microsoft/playwright/issues/28070
2024-03-25 15:39:45 -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
5bc6ca6345
fix: allow disposing ElementHandles multiple times ( #29953 )
...
Fixes https://github.com/microsoft/playwright/issues/29945
2024-03-15 16:26:56 +01:00
Max Schmitt
b158e4ef96
fix: postDataJSON without Content-Type header ( #29918 )
...
Regressed after
38fc74db7c .
Test coverage: Some tests were failing on the flakiness dashboard
2024-03-14 16:48:34 +01:00
Max Schmitt
38fc74db7c
fix: postDataJSON with application/x-www-form-urlencoded; charset=UTF-8 ( #29889 )
...
Fixes https://github.com/microsoft/playwright/issues/29872
2024-03-12 17:20:39 +01:00
PaulTriandafilov
8e48ee714d
feat(playwright-core): add remove cookies api ( #29698 )
2024-03-02 07:27:01 -08:00
Pavel Feldman
9d0430fa26
chore: strengthen linting ( #29669 )
2024-02-26 16:52:28 -08:00
Dmitry Gozman
f0244b8a76
chore: rename handleLocator to addLocatorHandler ( #29443 )
2024-02-09 15:18:50 -08:00
Dmitry Gozman
61955e55b1
fix(handleLocator): address API review feedback ( #29412 )
...
- docs improvements;
- `force: true` ignores `handleLocator`;
- wrapping an internal call;
- more test cases;
- `pw:api` log entries for this API.
2024-02-08 07:39:05 -08:00
Yury Semikhatsky
721d84f17a
fix(har): do not throw on -1 status code ( #29371 )
...
Fixes https://github.com/microsoft/playwright/issues/29311
2024-02-06 10:17:29 -08:00
Pavel Feldman
20699c36ba
chore: simplify types handling in toHaveScreenshot ( #29374 )
2024-02-05 19:07:30 -08:00
Max Schmitt
47f8ba2a04
feat(electron): expose ElectronApplication console events ( #29322 )
...
Fixes https://github.com/microsoft/playwright/issues/5905
2024-02-05 21:30:54 +01:00
Pavel Feldman
aff6cf3c83
chore: extract ws server util ( #29247 )
2024-01-30 14:36:51 -08:00
Yury Semikhatsky
13550b7329
fix: add new line before sourceURL ( #29199 )
...
Reference https://github.com/microsoft/playwright/issues/29116
2024-01-29 15:00:42 -08:00
Dmitry Gozman
f3fac6f4e9
feat: page.handleLocator that closes any interstitial pages/dialogs ( #29029 )
2024-01-19 12:35:00 -08:00
Max Schmitt
58fa4fce74
fix: use logger in default context with connectOverCDP ( #28838 )
...
Fixes https://github.com/microsoft/playwright/issues/28813
2024-01-03 19:49:47 +01:00
Dmitry Gozman
6b178d22e2
fix: do not produce TargetClosedError: <message> errors ( #28704 )
2023-12-18 12:34:43 -08:00
Yury Semikhatsky
d89837c58e
chore: revert noWaitForFinish option, page.close does not wait for ro… ( #28658 )
...
…ute handlers
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-15 09:00:12 -08:00
Yury Semikhatsky
f28ceffa37
feat: page.unrouteAll and context.unrouteAll ( #28635 )
...
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-14 13:48:17 -08:00
Max Schmitt
9b2585cd4e
fix: 'should collect trace with resources, but no js' test in service mode ( #28628 )
2023-12-13 11:42:29 -08:00
Pavel Feldman
afe90d648e
fix: do not generate api call steps inside named expects ( #28609 )
...
Fixes: https://github.com/microsoft/playwright/issues/28528
2023-12-13 09:06:02 -08:00
Max Schmitt
736c0efd43
chore: use more explicit awaits when returning in client ( #28443 )
2023-12-07 20:13:35 -08:00
Max Schmitt
2d2c270388
chore: mark outofprocess connection not as remote ( #28156 )
2023-12-06 17:58:19 -08:00
Yury Semikhatsky
8f056fbbce
chore: do not wait for route on close if route.continue() threw an error ( #28487 )
...
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-05 10:26:17 -08:00
Yury Semikhatsky
74e51d334e
feat: wait for active route handlers on page/context close ( #28414 )
...
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-04 16:19:05 -08:00
Pavel Feldman
92a0d24069
fix: restore timeout error name ( #28408 )
...
Fixes https://github.com/microsoft/playwright/issues/28404
2023-11-29 17:28:17 -08:00
Yury Semikhatsky
15a8ba5158
fix(route): correctly remove expired handlers ( #28385 )
...
* Check if handler is still in the route list before calling it
* Check if the handler is still in the list before removing it after
`times` expiration
2023-11-28 17:52:16 -08:00
Dmitry Gozman
5488c03d7f
chore: make asLocator() always safe ( #28207 )
2023-11-16 16:31:34 -08:00
Yury Semikhatsky
fae5dd898a
chore: remove from client check if browser is co-located with server ( #28071 )
...
Reference https://github.com/microsoft/playwright/issues/27792
2023-11-10 15:24:31 -08:00
Dmitry Gozman
62b6af3a7f
fix(android): respect recordHar option ( #28046 )
...
Fixes #28015 .
2023-11-09 08:36:05 -08:00
Max Schmitt
5f527fedb1
fix: JSHandle preview text for non-ascii attributes/children ( #28038 )
...
This surfaced in .NET that the string in the driver got incorrectly cut,
then transferred to .NET as an invalid UTF8 character
[`\ud835`](https://charbase.com/d835-unicode-invalid-character ) which
.NET wasn't able to parse and threw an error.
Drive-by: Move similar function from
`packages/playwright-core/src/client/page.ts` into isomorphic
`stringUtils`.
https://github.com/microsoft/playwright-dotnet/issues/2748
2023-11-09 00:11:01 +01:00
Yury Semikhatsky
36c4c24f8a
fix: only convert input files for browser collocated with server ( #27873 )
...
Reference #27452
Fixes #27792
2023-11-01 08:40:12 -07:00
Dmitry Gozman
88f30d1ce2
feat: support firefoxUserPrefs in launchPersistentContext ( #27840 )
...
Fixes #27773 .
2023-10-27 09:24:41 -07:00
Pavel Feldman
7de0ccd36e
chore: support await using for close() and dispose() ( #27766 )
...
This change assumes that the user has Node 18 with Symbol.dispose
available.
Fixes https://github.com/microsoft/playwright/issues/27141
2023-10-24 12:25:53 -07:00
Yury Semikhatsky
bd58c0d5d2
fix: preserve lastModified timestamp in setInputFiles ( #27671 )
...
Fixes #27452
2023-10-18 14:05:09 -07:00
Pavel Feldman
3aa147914c
chore: split error to client and server sides ( #27672 )
2023-10-17 21:34:02 -07:00
Pavel Feldman
091f6883f5
chore: remove the usages of raw target closed message constant ( #27669 )
2023-10-17 15:35:41 -07:00
Pavel Feldman
d4296dbff4
chore: break dowload.path() to throw ( #27662 )
2023-10-17 12:56:56 -07:00
Pavel Feldman
a54dbfdadf
chore: plumb the target close reason when test fails ( #27640 )
2023-10-16 20:32:13 -07:00
Yury Semikhatsky
4e845e7b1d
fix(fetch): JSON.stringify on client ( #27644 )
...
Fixes https://github.com/microsoft/playwright/issues/27602
2023-10-16 16:33:49 -07:00
Pavel Feldman
f8a30fb726
chore: follow up to target close message
2023-10-12 14:58:19 -07:00
Pavel Feldman
f212fd1a83
chore: unify target closed errors ( #27540 )
2023-10-12 11:05:34 -07:00
Pavel Feldman
fd6bf8aa2c
chrome: improve error messages on vscode side ( #27521 )
2023-10-09 19:55:24 -07:00
Pavel Feldman
11a4b3f7f5
chore: remove parsed stack trace ( #27496 )
2023-10-09 17:04:16 -07:00
Dmitry Gozman
ae5610f5c1
chore: include full messages into pw:channel logs ( #27488 )
...
Currently, we pass an object to the logger and it seems to use default
Node's `util.inspect()` which does not print properties at 3+ depth.
2023-10-06 11:04:33 -07:00
Jim Hays
dcc8dcca73
Fix various typos ( Fixes #27396 ) ( #27391 )
...
Fixes https://github.com/microsoft/playwright/issues/27396
2023-10-04 19:56:42 -07:00
Dmitry Gozman
045e8aa368
chore: move devices from Playwright to LocalUtils ( #27437 )
...
Also, do not create `LocalUtils` for remote connections. This avoids
sending device on every remote connect.
2023-10-04 16:48:54 -07:00
Dmitry Gozman
81694b7401
test: unflake some tests ( #27354 )
2023-09-29 10:45:31 -07:00
Pavel Feldman
ffd20f43f8
chore: dispose stale handles to prevent oom, 1000 of a kind max ( #27315 )
...
https://github.com/microsoft/playwright/issues/6319
2023-09-26 15:54:33 -07:00
Pavel Feldman
287d720b8e
chore: remove dedicated console channel ( #27234 )
2023-09-21 16:16:43 -07: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
Pavel Feldman
527d260cbf
chore: hide tracing calls from traces ( #27096 )
2023-09-15 12:55:49 -07:00
Andrey Lushnikov
a34030be80
browser(firefox): support relative paths for firefox videos ( #27099 )
...
Firefox protocol requires absolute paths for video recording.
Fixes https://github.com/microsoft/playwright/issues/27086
2023-09-15 10:26:20 -07:00
Dmitry Gozman
361038c950
feat: rename PageError to WebError ( #26913 )
2023-09-06 12:40:53 -07:00
Dmitry Gozman
6d85ba1494
fix: remove connectInsteadOfLaunching ( #26828 )
2023-08-31 15:29:04 -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
5646875e5c
fix: make Request.frame throw when page is not ready yet ( #26616 )
...
Suggest to check `request.isNavigationRequest()` beforehand.
Fixes #24603 .
2023-08-22 14:06:21 -07:00
Dmitry Gozman
72bdd43e69
fix(route): make sure Route.fetch works for popup main request ( #26590 )
...
References #24603 .
2023-08-21 16:48:51 -07:00
Pavel Feldman
f83d81956d
chore: make console stream live in ui mode ( #26562 )
2023-08-21 10:59:37 -07:00
Vignesh Shanmugam
adc9b2d390
feat: add support for browserContext.on('pageerror') ( #24452 )
...
+ fix #24466
+ Adds support for exposing the `pageerror` events via `browserContext`
API.
+ Helps with capturing the overall exceptions that are thrown outside of
the the current page and also captures the exceptions happens on other
windows/popups.
+ Keeps the API in sync with `context.on('request)',
context.on('console'), etc..`
2023-08-17 09:10:03 -07:00
Max Schmitt
75ed251c9e
fix: download of attachments in UI Mode ( #26407 )
...
Fixes https://github.com/microsoft/playwright/issues/26326 .
2023-08-17 10:57:28 +02:00
Dmitry Gozman
ea6d127f28
feat(connect): exposeNetwork option ( #24436 )
2023-07-26 17:29:31 -07:00
Pavel Feldman
4949cef09c
chore: save chrome trace on the client side ( #24414 )
2023-07-26 14:11:26 -07:00
Dmitry Gozman
2cb0622c39
chore: rename ScopedRace to LongStandingScope, preserve Error instance in reject() ( #24361 )
2023-07-23 21:00:07 -07:00
Pavel Feldman
879ddb73b0
chore: show last poller error on test timeout ( #24292 )
2023-07-18 17:03:26 -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
Max Schmitt
a0b0752662
fix: encode launch options correctly when reusing browser ( #24174 )
...
Fixes https://github.com/microsoft/playwright/issues/24157
2023-07-12 16:40:55 +02:00
Dmitry Gozman
76d85c55cf
chore: remove unused code ( #24167 )
2023-07-11 15:08:05 -07:00
Dmitry Gozman
1ab99fe1b8
feat(electron): support tracesDir option ( #23947 )
...
References #23620 .
2023-06-28 16:32:16 -07:00
Dmitry Gozman
4f8680f7a3
fix(pause): revert timeouts after pause ( #23578 )
...
Fixes #23523 .
2023-06-07 12:30:10 -07:00
Pavel Feldman
7579572688
chore: unflake the network status test ( #23551 )
2023-06-06 16:55:53 -07:00
Pavel Feldman
def24c0a14
chore: propagate client-side instrumentation across connect ( #23524 )
...
Fixes https://github.com/microsoft/playwright/issues/23504
2023-06-05 12:28:20 -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
be7984bdc9
fix(unroute): do not compare regexp instances ( #23101 )
...
References #23092 .
2023-05-17 16:27:32 -07:00
Dmitry Gozman
fec5059fee
feat(connect): print debug log when remote connection failed ( #23069 )
2023-05-16 16:46:02 -07:00
Pavel Feldman
efad19b332
chore: render test steps in the trace ( #22837 )
2023-05-05 15:12:18 -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
Dmitry Gozman
236c329ea9
feat: browserContext.on('dialog'/'console') ( #22805 )
...
Relanding #22033 and #21943 .
2023-05-04 15:11:46 -07:00
Pavel Feldman
116fb349ce
chore: allow configuring test id attribute for codegen ( #22716 )
...
Fixes: https://github.com/microsoft/playwright/issues/22653
2023-04-29 12:04:33 -07:00