Dmitry Gozman
6193e6d8ea
fix(reuse): reset tracing ( #19876 )
...
References #19059 .
2023-01-04 13:19:05 -08:00
Dmitry Gozman
711a1aadbf
chore: update tracing tests helper ( #19848 )
...
To be reused in future tests.
Signed-off-by: Dmitry Gozman <dgozman@gmail.com>
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2023-01-03 17:30:36 -08:00
Dmitry Gozman
f58015281a
test: attempt to unflake inspector tests ( #19845 )
...
On headed bots, we might get `locator('body')` from initial mouse
position.
2023-01-03 16:26:21 -08:00
Grant Colestock
a30aac5668
fix: make sure jsx fragments are transformed ( #19755 )
...
Fixes : #19142
2022-12-31 11:08:36 -08:00
Andrey Lushnikov
caec93ef42
test: enable ssim-cie94 image comparison algorithm for our tests ( #19313 )
2022-12-29 23:48:28 -08:00
Sander
b363902e1b
feat(ct): https ( #19697 )
2022-12-28 17:04:23 -08:00
Dmitry Gozman
5cdf118a42
fix(reuse): disable trace/video when reusing the context ( #19764 )
...
Previously, we disabled reuse when trace/video was on. Component testing
keeps this behavior.
References #19059 .
2022-12-28 16:58:34 -08:00
Yury Semikhatsky
137070d889
Revert "chore: hide setup, store, TestProject.setupMatch, storageStat… ( #19756 )
...
…eName (#19442 )"
This reverts commit 92dd734e04 .
2022-12-28 15:39:31 -08:00
Yury Semikhatsky
b8f96a9411
fix(generator): FilterOptions in java ( #19741 )
...
Fixes #19448
2022-12-28 09:13:06 -08:00
Dmitry Gozman
0b223b9036
fix(hit target): account for iframes with padding ( #19732 )
...
Padding on iframes moves the `documentElement` inside the iframe, so we
should account for it when converting coordinates between frames.
Fixes #19613 .
2022-12-27 16:59:34 -08:00
Dmitry Gozman
3334d89ad7
fix(socks): support ipv6 ( #19727 )
...
Signed-off-by: Dmitry Gozman <dgozman@gmail.com>
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2022-12-27 14:45:35 -08:00
Sander
ba393f51a8
feat(ct): before mount hook wrapper ( #18616 )
2022-12-27 14:26:17 -08:00
Dmitry Gozman
c1b9a56079
chore: migrate waitForSelector to not use rerunnable task ( #19715 )
2022-12-27 13:39:35 -08:00
Dmitry Gozman
24f2ccb4ca
feat(getByLabel): support aria-label ( #19726 )
...
References #19284 .
2022-12-27 12:43:55 -08:00
Dmitry Gozman
3ad65e7ce8
fix(launchServer): disable socks by default ( #19723 )
...
Socks does not support ipV6 yet.
References #19661 .
2022-12-27 10:43:36 -08:00
Dmitry Gozman
1bb019ac81
chore: migrate most of rerunnable tasks to element callback ( #19713 )
2022-12-27 09:22:22 -08:00
Sander
c5d9b8d0fb
chore: update to vite 4 ( #19690 )
2022-12-27 09:14:39 -08:00
Dmitry Gozman
0087bfac23
fix(role): update allowsNameFromContent to closer align with blink/gecko ( #19692 )
2022-12-27 09:06:46 -08:00
Pavel Feldman
7f5cd0aa8b
test(events): ensure events are dispatched in individual tasks ( #19687 )
...
Test for https://github.com/microsoft/playwright/issues/19685
2022-12-27 08:59:03 -08:00
Dmitry Gozman
cce29215f9
chore: make input actions not use rerunnable task ( #19638 )
2022-12-24 10:40:36 -08:00
Pavel Feldman
e61a8c6592
fix(generator): penalize for the selector length ( #19672 )
2022-12-22 20:54:04 -08:00
Pavel Feldman
233664bd30
chore: report more fatal errors via reporter ( #19640 )
2022-12-22 17:31:02 -08:00
Pavel Feldman
8b80e22a03
fix(har): recalculate receive time after response ended ( #19646 )
...
Fixes https://github.com/microsoft/playwright/issues/19327
2022-12-22 17:30:32 -08:00
Pavel Feldman
fe989d95eb
chore(electron): move loader to be preload ( #19650 )
...
Fixes https://github.com/microsoft/playwright/issues/19648
2022-12-22 17:28:08 -08:00
Dmitry Gozman
83418aa8ab
fix(socks): cleanup event listeners upon disconnect ( #19671 )
...
References #19661 .
2022-12-22 17:15:51 -08:00
Ross Wollman
06c7f1fb6c
fix(html): test and fix reporter timing display ( #19670 )
...
#19576 introduced a regression where the CLI reporters displayed some
times with way too many decimals. e.g. 7.123456789ms.
Prior to #19576 , there were two monotonicTime implementations; that PR
updated the reporters to use the common definition that had existed in
utils.ts. However, that introduced a regression in the base.ts reporters
which used the ms duration humanizing package which did not account for
the more precise decimals used by the shared monotonicTime function.
This fix removes the dependency on the third-party ms package and now
consistently uses Pavel's humanize function which the HTML reporter had
been using and proved to have better defaults for decimals.
Additionally, we add more test coverage to limit future regressions
since this was caught in passing.
Closes #19556 .
Relates #19576 .
2022-12-22 15:57:55 -08:00
Dmitry Gozman
b8848fb499
fix(test runner): make sure undefined options in config result in default values ( #19632 )
...
Note: this keeps existing behavior of `undefined` in `test.use()`
reverting to the config value and not to the original default value.
References #19615 .
2022-12-21 14:34:43 -08:00
Dmitry Gozman
eaae8ebbf3
chore: throw InvalidSelectorError from selector parser, add some tests ( #19636 )
2022-12-21 14:27:35 -08:00
Dmitry Gozman
d12bc0be9a
fix(screenshot): account for screenshot === undefined ( #19627 )
2022-12-21 10:16:36 -08:00
Pavel Feldman
675f0eb4a0
chore: report error location for fatal errors ( #19610 )
2022-12-21 09:36:59 -08:00
Ross Wollman
0844394270
feat(html): display overall duration ( #19576 )
...
<img width="1390" alt="Screenshot 2022-12-19 at 4 15 33 PM"
src="https://user-images.githubusercontent.com/11915034/208552484-c0127615-d2c6-414f-ae3b-e7836553d890.png ">
* Adds duration (time ellapsed from `onBegin` to `onEnd`); roughly
equivalent to `time npx playwright test …`.
* Removes cumulative per-file time
Resolves #19566 .
2022-12-20 14:13:10 -08:00
Pavel Feldman
95cc5c2a2e
fix(electron): fix the directory app path ( #19601 )
2022-12-20 12:50:53 -08:00
Pavel Feldman
971e30482a
fix(electron): allow using pre-ready apis ( #19599 )
2022-12-20 10:40:48 -08:00
Andrey Lushnikov
d7e7cab44a
fix: properly handle negated timed-out toPass matcher ( #19580 )
2022-12-20 08:41:32 -08:00
Dmitry Gozman
412c11db20
fix(reuse): make sure all dispose and close sequences are executed ( #19572 )
...
- When disposing recursively, only the root dispatcher received
`_dispose()` call, while some dispatchers need `_onDispose()` to clean
things up.
- When reusing the context, pages should be notified with `_onClose()`
so that all client-side waiting promises could reject.
Fixes #19216 .
2022-12-19 15:54:53 -08:00
Sander
600d6bc635
test(ct): svelte router ( #18749 )
2022-12-19 15:34:45 -08:00
Sander
f540ce08f2
feat(ct): vue2 plugins ( #18596 )
2022-12-19 15:33:50 -08:00
Han Yeong-woo
00ffd74727
fix(runner): import export assignment from ts ( #19559 )
2022-12-19 14:41:29 -08:00
Vladimir Semenov
467d9f37fc
feat(reporter): Add parallelIndex field to TestResult ( #19570 )
2022-12-19 14:37:04 -08:00
Dmitry Gozman
1263bc3edd
feat(console api): first/last/nth ( #19485 )
2022-12-15 11:17:59 -08:00
Pavel Feldman
3afd83c8cc
chore: withdraw locator.enumerate ( #19484 )
2022-12-15 10:13:56 -08:00
Playwright Service
091234e57f
feat(firefox-beta): roll to r1372 ( #19466 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-12-15 09:00:50 -08:00
Max Schmitt
1dcb8f643d
chore: fix Android tests ( #19426 )
2022-12-15 07:56:57 +01:00
Pavel Feldman
0e2732decf
feat(api): introduce expect().toPass ( #19463 )
2022-12-14 19:23:13 -08:00
Pavel Feldman
17a0074459
feat(api): introduce Locator.all, enumerate ( #19461 )
2022-12-14 16:42:50 -08:00
Ross Wollman
a1bb1dd94f
test: fix flaky cookie roundtrip test ( #19459 )
...
<img width="1676" alt="Screenshot 2022-12-14 at 2 05 29 PM"
src="https://user-images.githubusercontent.com/11915034/207726274-167d9ee7-c01b-4379-aff1-37dad979d23b.png ">
Flakiness dashboard reveals on Window's variants of Chromium, the
decimal for actual vs. expected was slightly off (e.g. 1705568002.677066
vs. 1705568002.674173).
This test fix assumes it's acceptable to suppress the roundtrip floating
point difference (which appears to be constrained to Windows).
Signed-off-by: Ross Wollman <rwoll@users.noreply.github.com>
2022-12-14 15:24:54 -08:00
Dmitry Gozman
a27f1f744f
feat(getByLabel): support aria-labelledby ( #19456 )
...
Testing library also treats them equally.
Fixes #19284 .
2022-12-14 13:51:05 -08:00
Andrey Lushnikov
8167f8bf54
chore: hide "comparator" option from documentation and types ( #19441 )
2022-12-14 09:58:19 -08:00
Max Schmitt
d418539309
test: make webview2 green
2022-12-14 09:47:42 +01:00
Yury Semikhatsky
92dd734e04
chore: hide setup, store, TestProject.setupMatch, storageStateName ( #19442 )
2022-12-13 22:48:38 -08:00
Dmitry Gozman
ab9602bebf
chore: remove unused PW_TEST_OUT_OF_PROCESS_DRIVER ( #19434 )
2022-12-13 16:04:44 -08:00
Dmitry Gozman
b97900b925
tests: use run-server for mode=service tests, restrict to page tests only ( #19435 )
2022-12-13 16:03:53 -08:00
Pavel Feldman
d1559a0fcc
chore: route.fetch(postData) ( #19436 )
2022-12-13 14:01:39 -08:00
Andrey Lushnikov
87141f6856
chore: add metadata for 'chromium page tests' project ( #19431 )
2022-12-13 13:12:07 -08:00
Pavel Feldman
6cadc56ea3
feat(api): allow getByTestId(regex) ( #19419 )
2022-12-13 08:43:13 -08:00
Max Schmitt
7b4ae20305
test: make webview2 green ( #19429 )
2022-12-13 08:39:16 -08:00
Dmitry Gozman
539893402e
feat(socks): support pattern similar to proxy bypass rules ( #19387 )
...
- `<loopback>` for local interfaces;
- `123.123.123.123` for IPv4;
- `[1:2:3:4:5:6:7:8]` for IPv6;
- `*.example.com` and `.example.com` for subdomains;
- `example.com` for domains;
- `anything:3000` for port matching.
2022-12-12 12:27:34 -08:00
Pranav Jain
59118b83f9
feat(android): add support for passing CR args & proxy when launching browser ( #19212 )
...
Fixes https://github.com/microsoft/playwright/issues/19211
2022-12-12 16:15:19 +01:00
Dmitry Gozman
3c17a2603a
feat(console api): support locator.filter ( #19389 )
2022-12-09 15:25:12 -08:00
Dmitry Gozman
256e9fd443
feat(connect): allow exposing local network to the remote browser (experimental) ( #19372 )
...
`connectOptions: { _exposeNetwork: '*' | 'localhost' }`
References #19287 .
2022-12-09 11:16:29 -08:00
Andrey Lushnikov
858c2453b3
feat(containers): implement reverse proxy for novnc and server ( #18569 )
...
This patch adds a reverse proxy in front of novnc and playwright
server inside the container.
As a result:
- container exposes a single HTTP port to the host
- all Playwright clients can connect using this exposed port, e.g.
`http://127.0.0.1:5400 `
- navigating to the exposed port in the browser lands on a nice HTML
page
with a link to view container screen
- users can also manually navigate to `http://127.0.0.1:5400/screen ` to
view screen
2022-12-08 17:17:18 -08:00
Andrey Lushnikov
526bc3f252
fix(ssim-cie94): further tune SSIM-CIE94 to fight wk artifacts ( #19370 )
...
This patch adds a grid border around the image so that the SSIM
resolution doesn't drop for the border pixels.
We also add a test with WebKit rendering artifacts to make sure
new approach helps to fight this.
2022-12-08 16:08:41 -08:00
Andrey Lushnikov
6139b432fd
fix(ssim-cie94): increase SSIM window radius ( #19343 )
...
While migrating Playwright tests from pixelmatch comparator to the
ssim-cie94 comparator, we noticed a rendering artifact that happens
on playwright screenshot tests on WebKit Linux.
This PR adds a set of cropped-down examples and tunes the ssim-cie94
comparator to accept these rendering artifacts.
2022-12-07 16:25:16 -08:00
Dmitry Gozman
622c1a8da6
tests: run browserType.connect tests against launchServer and run-server ( #19340 )
2022-12-07 14:36:32 -08:00
Pavel Feldman
7aa3935dcc
chore: match selected options by both value and label ( #19316 )
2022-12-07 09:04:32 -08:00
Dmitry Gozman
fd22d8bde1
feat(tether): support hostname pattern in socks proxy ( #19302 )
...
For now, only '*' and 'localhost' are supported.
References #19287 .
2022-12-07 08:46:35 -08:00
Fernando Garcia Llorente
cd4ccdfa29
feat: allow options in automatic screenshots ( #19143 )
...
Closes #9983
Allowing Automatic Screenshots in `PlaywrightTestConfig` to have
`fullPage` & `omitBackground` as optional parameters.
2022-12-07 08:45:33 -08:00
Dmitry Gozman
d294c5da33
chore: roll stable-test-runner to 1.28.1 ( #19310 )
...
This required `allowJs: false` in our `tsconfig.json` due to the
following error:
```
Error: Cannot find module './utilsBundleImpl'
Require stack:
- <playwright>/packages/playwright-core/src/utilsBundle.ts
- <playwright>/packages/playwright-test/lib/reporters/html.js
- <playwright>/tests/playwright-test/reporter-html.spec.ts
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/loader.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/runner.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/lib/cli/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/cli.js
at ../../packages/playwright-core/src/utilsBundle.ts:20
18 | import path from 'path';
19 |
> 20 | export const colors: typeof import('../bundles/utils/node_modules/colors/safe') = require('./utilsBundleImpl').colors;
| ^
21 | export const debug: typeof import('../bundles/utils/node_modules/@types/debug') = require('./utilsBundleImpl').debug;
22 | export const getProxyForUrl: typeof import('../bundles/utils/node_modules/@types/proxy-from-env').getProxyForUrl = require('./utilsBundleImpl').getProxyForUrl;
23 | export const HttpsProxyAgent: typeof import('../bundles/utils/node_modules/https-proxy-agent').HttpsProxyAgent = require('./utilsBundleImpl').HttpsProxyAgent;
at Object.<anonymous> (<playwright>/packages/playwright-core/src/utilsBundle.ts:20:83)
at Object.<anonymous> (<playwright>/packages/playwright-test/src/reporters/html.ts:17:1)
```
2022-12-06 15:46:19 -08:00
Yury Semikhatsky
beb15bb504
chore: rename setup => setupMatch ( #19309 )
2022-12-06 14:55:22 -08:00
Yury Semikhatsky
1b3e53697b
chore: TestStorage => TestStore ( #19308 )
2022-12-06 13:33:43 -08:00
Dmitry Gozman
4784dae10f
fix(role): accessibleName computation should walk the flat dom tree ( #19301 )
...
- When visiting `<slot>` element, descend into assigned nodes.
- When node has `assignedSlot`, skip it during regular traversal.
Fixes #18989 .
2022-12-06 09:31:26 -08:00
Yury Semikhatsky
3c1b26b9f1
feat: make storage a global variable ( #19283 )
2022-12-05 21:37:37 -08:00
Yury Semikhatsky
f9ef18912d
feat: use setup() instead of test() for project setup ( #19281 )
2022-12-05 18:15:01 -08:00
Dmitry Gozman
81c8620bfe
chore: upgrade internal types to support TypeScript 4.9.3 ( #19280 )
...
Fixes https://github.com/microsoft/TypeScript/issues/51619
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-12-05 17:22:25 -08:00
Playwright Service
84a0aaaaff
feat(chromium-tip-of-tree): roll to r1065 ( #19239 )
...
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-12-05 11:22:03 -08:00
Dmitry Gozman
0be4fa768a
fix(codegen): do not generate Promise.all ( #19182 )
...
Drive-by: fix `download`, `dialog` and `popup` signals to use different
variable names in all languages.
2022-12-02 17:33:01 -08:00
Dmitry Gozman
c547416e24
test: unflake "should highlight locators with custom testId" ( #19236 )
2022-12-02 17:32:29 -08:00
Andrey Lushnikov
6d82460a02
feat: implement a new image comparison function ( #19166 )
...
This patch implements a new image comparison function, codenamed
"ssim-cie94". The goal of the new comparison function is to cancel out
browser non-determenistic rendering.
To use the new comparison function:
```ts
await expect(page).toHaveScreenshot({
comparator: 'ssim-cie94',
});
```
As of Nov 30, 2022, we identified the following sources of
non-determenistic rendering for Chromium:
- Anti-aliasing for certain shapes might be different due to the
way skia rasterizes certain shapes.
- Color blending might be different on `x86` and `aarch64`
architectures.
The new function employs a few heuristics to fight these
differences.
Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`:
1. If the [CIE94] metric is less then 1.0, then we consider these pixels
**EQUAL**. (The value `1.0` is the [just-noticeable difference] for
[CIE94].). Otherwise, proceed to next step.
1. If all the 8 neighbors of the first pixel match its color, or
if the 8 neighbors of the second pixel match its color, then these
pixels are **DIFFERENT**. (In case of anti-aliasing, some of the
direct neighbors have to be blended up or down.) Otherwise, proceed
to next step.
1. If SSIM in some locality around the different pixels is more than
0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them
as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be
very close to 1.0).
[CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94
[just-noticeable difference]:
https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-02 15:22:05 -08:00
Dmitry Gozman
6471e8536e
feat(test runner): support jsconfig.json's baseUrl+paths ( #19219 )
...
Fixes #19129 .
2022-12-01 16:42:25 -08:00
Max Schmitt
3565d97a36
feat(recorder): make it work with [contenteditable] ( #19066 )
...
https://github.com/microsoft/playwright/issues/19029
2022-12-01 12:41:03 -08:00
Playwright Service
dbe4362b9c
feat(firefox): roll to r1366 ( #19185 )
...
Fixes https://github.com/microsoft/playwright/issues/18307 .
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-11-30 19:13:11 -08:00
Pavel Feldman
f0e8d8f074
feat(api): introduce route.fetch and route.fulfill(json) ( #19184 )
2022-11-30 17:26:19 -08:00
Playwright Service
f952e1147b
feat(chromium-tip-of-tree): roll to r1063 ( #19070 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-11-30 11:11:54 -08:00
Dmitry Gozman
307a0b6ea7
fix(dotnet): codegen/docs use Name instead of NameString ( #19156 )
2022-11-29 20:56:18 -08:00
Pavel Feldman
5ac426b3d5
chore: expose utility script to inner evaluates ( #19147 )
2022-11-29 16:57:11 -08:00
Dmitry Gozman
b1b21bdac5
fix(shards): zero-sized shard should not include all tests ( #19148 )
...
Fixes #19073 .
2022-11-29 16:02:11 -08:00
Zihua Li
0c6a0f40c6
feat(keyboard): support simple cut-pasting using meta+x/v ( #18756 )
2022-11-29 12:58:14 -08:00
Dmitry Gozman
23e02dd006
test: unflake some timeout-dependent tests ( #19139 )
2022-11-29 12:54:53 -08:00
Shubham Kanodia
3d804ff7cd
chore: rewrite error message for missing snapshot ( #19104 )
2022-11-29 12:51:15 -08:00
Dmitry Gozman
43a6bf4d45
fix(inspector): support custom test id attribute ( #18996 )
...
Fixes #18959 .
2022-11-29 11:43:47 -08:00
Dmitry Gozman
4f72a895e9
fix(inspector): render expect.not correctly ( #19125 )
...
Also fixes the same in expect logs.
References #19083 .
2022-11-28 20:50:16 -08:00
Max Schmitt
dd18792087
test: navigator.webdriver is set to true ( #19065 )
...
https://github.com/microsoft/playwright/issues/18307
2022-11-28 20:03:49 -08:00
Pavel Feldman
85467d1b7d
chore: generate get by title ( #19119 )
2022-11-28 19:55:34 -08:00
Max Schmitt
b84a7a9e57
test: fix WebKit socks proxy tests ( #19035 )
...
Fixes https://github.com/microsoft/playwright/issues/18301
2022-11-23 13:03:38 -10:00
Yury Semikhatsky
d3f41eaa47
fix(fetch): cookie with domain=localhost ( #18998 )
...
Fixes https://github.com/microsoft/playwright/issues/18362
2022-11-23 09:22:49 -08:00
Yury Semikhatsky
31d45ad4dc
chore(runner): add all setup files in separate pass ( #18978 )
2022-11-22 16:22:48 -08:00
Dmitry Gozman
503f8f51dc
fix(reuse): stop pending operations upon reuse/disconnect ( #18997 )
2022-11-22 15:21:20 -08:00
Dmitry Gozman
190ed9465f
fix(chromium): detach from shared workers ( #18976 )
...
This prevents shared workers from stalling upon restart.
We receive `Inspector.targetCrashed` and
`Inspector.targetReloadedAfterCrash` events that assume
`Runtime.runIfWaitingForDebugger` from any attached client. It is easier
and more stable to just detach from shared workers, because we do not
inspect them.
For service workers, we should actually issue
`Runtime.runIfWaitingForDebugger` in such cases, because we attach to
them.
Fixes #18932 .
2022-11-22 15:20:42 -08:00
Pavel Feldman
73e7c0ed3d
fix(electron): tolerate connection closed during quit ( #18993 )
2022-11-22 11:50:35 -08:00
Pavel Feldman
a0ea9b5fba
chore: simplify slowmo implementation ( #18990 )
2022-11-22 11:06:45 -08:00