Pavel Feldman
53bf1995db
chore: do not leak internal page handles after closing page ( #24169 )
...
Partial fix for https://github.com/microsoft/playwright/issues/6319
After this fix, the following scenario won't leak and the context state
(cookies, storage, etc) can be reused by the new page sessions:
```js
for (let i = 0; i < 1000; ++i) {
const page = await context.newPage();
await page.goto('...');
await page.close('...');
}
```
2023-07-12 14:51:13 -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
Pavel Feldman
067faa50d7
chore: migrate Promise.race to scopes to prevent leaks ( #24160 )
2023-07-11 10:38:08 -07:00
Dmitry Gozman
aeba083da0
fix(snapshots): match resources by method ( #24145 )
...
Fixes #24144 .
Previously, we only matched by url, which confuses GET and HEAD requests
where the latter is usually zero-sized.
Also make sure that resources are sorted by their monotonicTime, since
that's not always the case in the trace file, where they are sorted by
the "response body retrieved" time.
2023-07-10 20:04:48 -07:00
Andrey Lushnikov
19474bef78
chore: update WebKit browser version to 17.0 ( #24128 )
2023-07-10 08:08:00 -07:00
Pavel Feldman
50ba25e9a1
fix(trace): do not allow after w/o before ( #24106 )
...
Fixes https://github.com/microsoft/playwright/issues/24087 ,
https://github.com/microsoft/playwright/issues/23802
2023-07-07 17:16:26 -07:00
Playwright Service
9bca9f1b4f
feat(chromium): roll to r1071 ( #24098 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-07 16:51:03 +02:00
Playwright Service
90c92c5724
feat(firefox): roll to r1419 ( #24091 )
...
Fixes https://github.com/microsoft/playwright/issues/24080
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-06 22:43:03 -07:00
Andrey Lushnikov
b9e68e22e0
feat: support Chromium installation on Debian 12 ( #24090 )
...
This adds Chromium support for both x86 and arm64 versions of Debian 12.
References https://github.com/microsoft/playwright/issues/24028
2023-07-06 22:41:36 -07:00
Pavel Feldman
0409bfca56
chore: ensure module deps in ct-core ( #24056 )
...
Fixes https://github.com/microsoft/playwright/issues/23823
2023-07-06 12:01:45 -07:00
Playwright Service
9f1f737acb
feat(chromium): roll to r1070 ( #23991 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-03 21:27:07 +00:00
Dmitry Gozman
86c1abd934
chore: introduce ReporterV2 interface ( #23983 )
2023-06-30 13:36:50 -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
1ab99fe1b8
feat(electron): support tracesDir option ( #23947 )
...
References #23620 .
2023-06-28 16:32:16 -07:00
Dmitry Gozman
b0b429fed0
feat: support bigint in evaluates ( #23930 )
...
Fixes #22719 .
2023-06-28 08:55:45 -07:00
Max Schmitt
dcdf38f119
chore: keep UI Mode running when used with browser mode ( #23876 )
...
This will keep UI Mode running in browser mode. When launched in normal
persistent context mode, we know when the persistent context closes, so
we can run the project teardown code.
Fixes https://github.com/microsoft/playwright/issues/23801
2023-06-26 22:21:44 +02:00
Max Schmitt
e1c220a37b
fix(trace-viewer): file path contains encoded characters ( #23893 )
...
This fixes:
```
npx playwright show-trace %20I%20Love%20Node.zip
```
Extracted from https://github.com/microsoft/playwright/pull/23414 .
2023-06-26 18:13:40 +02:00
zhengjitf
6f67f6b52b
fix(chromium): can get correct orientation angle on non-mobile devices ( #23796 )
...
Fix #23772
2023-06-23 11:34:09 -07:00
Playwright Service
f85480a12e
feat(firefox-beta): roll to r1415 ( #23866 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2023-06-23 07:03:20 -07:00
Dmitry Gozman
5821c547aa
fix(selector generator): use the same label definition as getByLabel ( #23846 )
...
This extracts `getElementLabels` helper function to be used both for
generating and querying.
2023-06-22 08:34:08 -07:00
Moritz Horstmann
bdac3e28a6
fix: best-effort support for TUXEDO OS ( #23813 )
...
TUXEDO OS is an Ubuntu based distribution built by the Linux computer
vendor TUXEDO.
2023-06-22 07:14:18 -07:00
Playwright Service
f7ecb7094d
feat(chromium): roll to r1069 ( #23856 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 15:54:56 +02: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
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
vemv
380209af37
chore: log when websockets are proactively closed ( #23689 )
...
Closes https://github.com/microsoft/playwright/issues/23566
n.b., while that issue describes a fairly specific "use case", this
logging is simple and generic. It seems very plausible that it can help
diagnose all sorts of issues.
Cheers - V
2023-06-19 11:12:02 -07:00
Max Schmitt
0f9f863183
fix(codegen): generate no Enter keyboard events for textareas ( #23775 )
...
Fixes https://github.com/microsoft/playwright/issues/23774
2023-06-19 17:07:37 +02: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
b44723708c
chore: move extracting of browser out-of-process ( #23739 )
...
https://github.com/microsoft/playwright/issues/23729
2023-06-16 20:40:15 +02:00
Dmitry Gozman
de422b5afb
chore: speedup multiple roleUtils calls ( #23745 )
...
When generating a selector, we tend to match by role and call various
roleUtils methods multiple times.
Apply the usual pattern for "nested operations counter" and aggressively
cache the results.
2023-06-16 11:39:39 -07:00
Machiel-B
0358f6c434
fix: make trace viewer not use 301 to redirect ( #23757 )
2023-06-16 18:16:01 +02:00
Playwright Service
d92a648284
feat(chromium): roll to r1068 ( #23756 )
2023-06-16 17:57:45 +02:00
Dmitriy Dudkevich
fc8f0101c8
fix(selenium): send additional headers to delete session method ( #23719 )
...
In the process of completing the task -
https://github.com/microsoft/playwright/pull/23348 , I didn't notice the
need to pass headers to the session deletion method. So I fixed it here.
And support headers for selenium@3.
2023-06-16 11:44:04 +02:00
Dmitry Gozman
d11bc88784
chore(codegen): do not use accessible name for non-text selectors ( #23717 )
...
Accessible name usually includes text, so we don't want it for non-text
selectors, e.g. for `expect()` selectors.
2023-06-15 12:30:18 -07:00
Andrey Lushnikov
3c0fab489b
chore: miscellaneous trace viewer fixes ( #23695 )
...
- properly annotate continued requests
- nest `attach` steps inside the related `expect` step
- fix primary-id-to-non-primary-id mapping
- make sure images in trace are not draggable
Fixes #23693
---------
Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-14 09:37:19 -07:00
Max Schmitt
9e636687ea
chore: add more logging for browser install process ( #23675 )
2023-06-14 15:33:06 +02:00
Dmitry Gozman
5b2e8a6a7a
chore: optional root for generateSelector ( #23692 )
2023-06-13 21:25:39 -07: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
734705e9b3
chore: elementHandle getters implemented through Frame ( #23557 )
...
This is a step towards not using handles for locator operations.
2023-06-09 07:18:13 -07:00
Dmitry Gozman
11659ceb73
fix(role): handle display:contents elements ( #23607 )
...
Fixes #23521 .
2023-06-08 16:00:48 -07:00
Dmitriy Dudkevich
187cfdc328
feat: ability to pass additional headers to selenium ( #23348 )
2023-06-08 10:41:36 -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
Playwright Service
54a35dd108
feat(chromium): roll to r1067 ( #23593 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-08 19:03:48 +02:00
Dmitry Gozman
4f8680f7a3
fix(pause): revert timeouts after pause ( #23578 )
...
Fixes #23523 .
2023-06-07 12:30:10 -07:00
Pavel Feldman
0b30f2017c
chore: make trace server work over http ( #23561 )
2023-06-06 18:36:05 -07:00
Andrey Lushnikov
2e327c9d0c
fix: miscellaneous improvements for tracing UI ( #23558 )
...
- feat(tracing): mark API requests with "API" label
- feat(tracing): do not attribute any resources to `route.` API calls;
otherwise, network traffic might get inside the `route.` actions.
- fix(tracing): map actionIds from primary contexts to actionIds from
non-primary contexts
- fix(tracing): show leading `/` in URL path in network panel
This is a result of a pair-programming session with @pavelfeldman
2023-06-06 17:38:44 -07:00
Pavel Feldman
7579572688
chore: unflake the network status test ( #23551 )
2023-06-06 16:55:53 -07:00
Max Schmitt
85be65b07b
chore: update npx playwright uninstall docs ( #23552 )
2023-06-06 22:09:15 +02:00
Max Schmitt
8bc26a2b44
chore: wait for downloads getting removed on context.close() ( #23500 )
...
Before there was a race, that we ran into this code:
9cd49d5dd5/packages/playwright-core/src/server/browserContext.ts (L236-L237)
and then into this code:
9cd49d5dd5/packages/playwright-core/src/server/browserContext.ts (L429-L431)
which had the side effect, that the first call did not wait. Then
immediately clears the downloads Set and then the second call is a NOOP.
This ends up that the the removal of the downloads can happen after the
context is closed, hence the test is flaky.
Relates to https://github.com/microsoft/playwright/pull/6151 where it
got introduced. So something for @yury-s.
Fixes https://github.com/microsoft/playwright/issues/22525
2023-06-06 20:38:36 +02:00
Pavel Feldman
6351630af2
chore: do not show the open error ( #23547 )
2023-06-06 11:09:08 -07:00
Pavel Feldman
d4349e5d6f
chore: print listening on message in terminal for web trace modes ( #23546 )
2023-06-06 09:36:49 -07:00
Pavel Feldman
699ac3a0f2
chore: allow opening ui mode over http ( #23536 )
2023-06-06 08:31:52 -07:00
Andrey Lushnikov
3a00fc4edf
fix: call focus() twice to workaround firefox not focusing element ( #23535 )
...
When focus is moved from one tab to another, it might require calling
`focus()` twice to actually focus an element in Firefox.
Fixes https://github.com/microsoft/playwright/issues/23117
2023-06-05 16:46:52 -07:00
Pavel Feldman
eacfff8127
chore: make trace viewer work over http ( #23531 )
2023-06-05 16:30:30 -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
Playwright Service
d95b6f40a4
feat(webkit): roll to r1860 ( #23494 )
...
Fixes https://github.com/microsoft/playwright/issues/20489
2023-06-05 09:51:39 -07:00
Dmitry Gozman
b518d1f6da
chore: update error message when using wrong cli ( #23512 )
...
Now recommends uninstalling other packages. Fixes #23314 .
Example messages:
```
Please install @playwright/test package before running "npx playwright show-report"
npm uninstall playwright playwright-firefox
npm install -D @playwright/test
```
```
Please install @playwright/test package before running "yarn playwright show-report"
yarn remove playwright playwright-chromium playwright-firefox playwright-webkit
yarn add -D @playwright/test
```
```
Please install @playwright/test package before running "pnpm exec playwright show-report"
pnpm remove playwright
pnpm add -D @playwright/test
```
2023-06-05 09:51:08 -07:00
Max Schmitt
75971af55b
feat(cli): introduce npx playwright uninstall ( #23128 )
...
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-06-05 18:50:21 +02:00
Max Schmitt
00f662531e
Revert "fix(tracing): workaround chromium scrollTop slowness" ( #23486 )
...
This commit reverts f6712ec43a
I manually ran
https://github.com/microsoft/playwright/issues/14037#issuecomment-1122256514
and made sure that the performance did not regress. ~same.
Fixes https://github.com/microsoft/playwright/issues/23455
2023-06-02 23:25:55 +02:00
Yury Semikhatsky
401fc4cb9e
fix(tracing): record available response headers without waiting for extra info ( #23483 )
...
Fixes #23115
2023-06-02 14:15:20 -07:00
Ivaylo Pavlov
e3f91bbabf
Fix header to pass Selenium Grid Capabilities ( #23346 )
...
Fixes : #23345
2023-06-02 13:28:23 -07:00
Dmitriy Dudkevich
7ab754f5d5
fix: render actions in ui mode with browsers from selenium ( #23382 )
2023-06-02 13:24:21 -07:00
Pavel Feldman
5a14619bab
chore: render route markers in the trace network panel ( #23476 )
...
Fixes https://github.com/microsoft/playwright/issues/23040

2023-06-02 13:00:27 -07:00
Max Schmitt
b21c81d344
devops: add bot for Chromium --headless=new ( #23440 )
...
https://github.com/microsoft/playwright/issues/23389
2023-06-02 20:40:12 +02:00
Dmitry Gozman
835f14d7c9
fix(pause): ignore page.pause on the server ( #23417 )
...
Fixes #23051 .
2023-06-02 08:32:30 -07:00
Kristo Jorgenson
a4a363f4f4
chore: upgrade @types/node to 16.x ( #23429 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-02 10:04:41 +02:00
Dmitry Gozman
14a1eaa474
chore: add Playwright to attribution ( #23447 )
...
This makes it easier to plumb all kinds of options around.
2023-06-01 17:54:43 -07:00
Playwright Service
3e73906027
feat(chromium): roll to r1066 ( #23433 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-01 16:03:49 +02:00
Dmitry Gozman
6bb5c0a549
fix: make evaluate not wait for scheduled navigations ( #23402 )
...
Fixes #23141 .
2023-05-31 14:08:44 -07:00
Pavel Feldman
658b1dfea3
chore: trace viewer server for vscode ( #23383 )
2023-05-30 18:31:15 -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
Dmitry Gozman
6db6498565
chore: replace sigint handler per browser with a single one ( #23317 )
...
Otherwise, multiple sigint handlers (one from each browser) would try to
`process.exit(130)` each.
2023-05-30 13:54:04 -07:00
Max Schmitt
13f70b6d89
chore: have type modifiers directly on file import ( #23337 )
2023-05-30 21:11:35 +02: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
Max Schmitt
f819b1c72d
fix: trace viewer with global applied background-color ( #23362 )
...
Fixes https://github.com/microsoft/playwright/issues/23275
2023-05-30 17:58:29 +02:00
Max Schmitt
9e75b95153
fix: display testId as regex in trace-viewer ( #23361 )
...
Fixes https://github.com/microsoft/playwright/issues/23298
2023-05-30 17:45:48 +02:00
Pavel Feldman
ec972fb7c1
chore: make trace viewer self-desctruct on input disconnect ( #23291 )
2023-05-26 14:54:54 -07:00
Dmitry Gozman
fa86f2aee0
chore: createHttpServer that destroys sockets upon close ( #23294 )
...
This avoids the server hanging on close.
2023-05-26 07:03:41 -07:00
Pavel Feldman
1e95b6d906
chore: allow sending trace URLs over stdin ( #23288 )
2023-05-25 15:38:47 -07:00
Playwright Service
c5c0b9a78b
feat(chromium): roll to r1065 ( #23281 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 13:04:36 -07:00
Yury Semikhatsky
bcc711145e
feat(webkit): roll to r1855 ( #23267 )
2023-05-24 16:09:58 -07:00
Dmitry Gozman
848f1dff3f
feat(trace): instantiate consoleAPI in popout with correct testIdAttribute ( #23238 )
2023-05-23 12:17:26 -07:00
Pavel Feldman
6cce93b697
chore: explicit server mode control ( #23215 )
2023-05-23 10:56:37 -07:00
Pavel Feldman
b814e8a5f1
chore: bring back per test artifacts ( #23153 )
2023-05-23 09:36:35 -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
Andrey Lushnikov
5f36a2946e
fix: add missing webkit deps on ubuntu 20.04 ( #23209 )
...
Fixes https://github.com/microsoft/playwright/issues/23186
2023-05-22 15:43:09 -07:00
Pavel Feldman
631edc9744
chore(internal): generate code in jsonl ( #23124 )
2023-05-20 10:15:33 -07:00
Pavel Feldman
bd090e67df
lint: prevent object string concatenation ( #23172 )
2023-05-19 15:17:43 -07:00
Dmitry Gozman
bd33e5f8c0
fix(tracing): when zipping remotely, use correct file name ( #23171 )
...
Fixes #23108 .
2023-05-19 14:42:01 -07:00
Dmitry Gozman
422b65eeae
feat(connect): pw:server:channel and pw:socks debug logs ( #23144 )
...
Fixes #23081 .
2023-05-18 13:44:48 -07:00
Max Schmitt
acdb71878e
test: unskip selenium driver test ( #23129 )
...
Issue is that [when `stop()` is
called](28504f6dc7/tests/library/browsertype-launch-selenium.spec.ts (L202) ),
`onExit()` gets called and then it throws an unhandled rejection.
This regressed in https://github.com/microsoft/playwright/pull/23028 .
I didn't find a reason to keep onExit, so removed it for now since
transport should handle these scenarios.
Fixes https://github.com/microsoft/playwright/issues/23110
2023-05-18 18:33:11 +02:00
Playwright Service
5957d8f306
feat(chromium): roll to r1064 ( #23130 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 15:52:45 +02:00
Dmitry Gozman
be7984bdc9
fix(unroute): do not compare regexp instances ( #23101 )
...
References #23092 .
2023-05-17 16:27:32 -07:00
Playwright Service
f1e0aed03c
feat(chromium): roll to r1063 ( #23104 )
...
Fixes https://github.com/microsoft/playwright/issues/22967
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 00:49:13 +02:00
Max Schmitt
e80ff0df77
chore: don't install gstreamer for WebKit Ubuntu 20 ( #23062 )
2023-05-17 18:31:24 +02:00
Pavel Feldman
fbc461ede0
chore(trace): do not flush console events ( #23073 )
...
Fixes https://github.com/microsoft/playwright/issues/20626
2023-05-16 18:44:27 -07:00
Dmitry Gozman
fec5059fee
feat(connect): print debug log when remote connection failed ( #23069 )
2023-05-16 16:46:02 -07:00