Peng Xiao
cc881fdb1f
fix: content editable retarget ( #29792 )
...
If `contenteditable` is wrapped into a button or `[role=button]`,
`element.fill` will incorrectly retarget the closest button element.
fix https://github.com/microsoft/playwright/issues/29813
2024-04-01 13:03:09 -07:00
Hansanto
a950a7b86b
feat: Support intervals arg for toPass ( #30037 )
...
Fixes #30040
# Context
In the `playwright.config` file, we can custom the default `timeout`
property for `expect.toPass` by the property:
```ts title='playwright.config.ts'
export default defineConfig({
// ...
expect: {
toPass: {
timeout: 60_000,
},
},
});
```
However, we can't customize the `intervals` option. So the default value
is always `[100, 250, 500, 1000]`.
# Goal
Add the possibility to customize the intervals option from the
`playwright.config` file.
```ts title='playwright.config.ts'
export default defineConfig({
// ...
expect: {
toPass: {
timeout: 60_000,
intervals: [1000, 2000, 3000]
},
},
});
```
2024-03-29 10:17:29 -07:00
Yury Semikhatsky
3001c9ac73
fix: preserve test declaration order in html and merged report ( #30159 )
...
* Add `Suite.entries` that returns tests and suites in their declaration
order
* Exposed `Suite.type` and `TestCase.type` for discriminating between
different entry types.
* Blob report format is updated to store entries instead of separate
lists for suites and tests.
* Bumped blob format version to 2, added modernizer.
Fixes https://github.com/microsoft/playwright/issues/29984
2024-03-29 10:12:33 -07:00
Yury Semikhatsky
16318ea715
chore: remove unused botName from types ( #30172 )
2024-03-28 16:16:15 -07:00
Andrey Lushnikov
4781b3c3a8
fix(firefox): disable cache when request interception is enabled ( #30113 )
...
Fixes #30000
2024-03-28 10:25:37 -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
Dmitry Gozman
dd1eca2a9d
fix(trace viewer): show correct number of pages without screencast ( #30124 )
...
Exposed by the flaky "should open two trace files" test.
2024-03-26 10:25:12 -07:00
Pavel Feldman
2de8a6b002
chore: move filter params into the clearCookies ( #30111 )
2024-03-26 08:12:26 -07:00
Andrey Lushnikov
397244c026
test: add a test for disabled cache with context-wide request interception ( #30072 )
...
References #30000
2024-03-25 22:03:24 -07:00
Max Schmitt
599185dd07
feat(ui-mode): show native tags in test tree ( #30092 )
...
This brings up the question that we would show the tag name twice if its
a tag in a title. This would be aligned to how HTML report is doing it.
Fixes https://github.com/microsoft/playwright/issues/29927
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-26 01:06:22 +01:00
Dmitry Gozman
051afb9ce0
fix(test runner): update fixture teardown error message ( #30109 )
...
With the recent change that gave after hooks a separate timeout, fixture
teardown does not imply that "test finished successfully, but fixture
teardown was slow".
2024-03-25 17:04:03 -07:00
Max Schmitt
65d82797f1
fix(ct): ct ID clash on similar imports ( #30108 )
...
This restores the [best
effort](https://github.com/microsoft/playwright/pull/29407/files#diff-8dd3534dc5013c3779edeaded71324b0dd1c1807668f3c6d9e9a1aab1c20ae91L152 )
logic if its a relativ path.
Fixes https://github.com/microsoft/playwright/issues/30085
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Pavel Feldman <pavel.feldman@gmail.com>
2024-03-25 23:50:45 +01: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
911d8effb9
feat(test runner): do not mock tty in the worker process ( #30107 )
...
This was historically done to make `console.log()` have colors. However,
this makes any other code that checks `process.stdout.isTTY` incorrectly
assume real TTY support.
Node18 and Node20 now respect `FORCE_COLOR=1` in console, so our default
behavior of forcing colors in the worker process just works out of the
box. See https://github.com/nodejs/node/pull/48034 .
2024-03-25 15:31:58 -07:00
Max Schmitt
253a2f9a9c
chore: address UI Mode keyboard shortcut feedback ( #30088 )
...
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-25 19:48:20 +01:00
Max Schmitt
e69355a6e2
test: skip 'should fulfill with gzip and readback' on Electron and Android ( #30103 )
2024-03-25 19:35:44 +01: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
7a3c002944
fix(ct): allow importing json files ( #30067 )
...
While we are not fully resolving imports during compilation, do not
treat `json` as a non-importable asset.
Fixes #29926 .
2024-03-25 07:41:54 -07:00
Pavel Feldman
1539cde034
chore: allow passing path to config to the test server ( #30068 )
2024-03-22 16:04:59 -07:00
Dmitry Gozman
c8e8d8f8bb
test: fulfilling with gzip should allow to read the body ( #30065 )
...
Fixes #29261 .
2024-03-22 13:32:28 -07:00
Dmitry Gozman
c1400a3db5
Revert "feat(codegen): add button to generate toHaveScreenshot statement ( #29996 )" ( #30064 )
...
This reverts commit 1bb463163b
. Decided to
wait for a better VRT story.
References #29250 .
2024-03-22 13:26:22 -07:00
Yury Semikhatsky
a511731f55
fix(html): keep projects from different bots separate ( #30051 )
2024-03-22 10:02:00 -07:00
Dmitry Gozman
348d0c2bfa
test: can register service workers in an iframe ( #30045 )
...
References #29267 .
2024-03-21 15:34:23 -07:00
Dmitry Gozman
ef57489cf9
test: iframe is covered by service workers ( #30042 )
...
References #29267 .
2024-03-21 11:27:27 -07:00
Dmitry Gozman
3e73a6ce69
feat(test runner): show multiple errors, at most one per stage ( #30024 )
...
Previously, there was at most one "hard error", as opposite to multiple
"soft errors". This was done to preserve the historic behavior at the
time of introducing multiple `TestInfo.errors`.
With this change, every user callback that is executed `withRunnable()`
can throw an error and/or timeout, and both of these will end up in
`TestInfo.errors`.
Additionally, there is at most one "unhandled exception" error, to avoid
flooding the report with mass failures.
Drive-by: remove boolean arguments from `_failWithError()`.
Fixes #29876 .
2024-03-20 21:01:30 -07:00
Yury Semikhatsky
69e90f38c7
fix(codegen): import re in python ( #30026 )
...
Fixes https://github.com/microsoft/playwright/issues/30019
2024-03-20 16:38:28 -07:00
Yury Semikhatsky
69f2ae1e4d
test: intercepted requests bypass disk cache ( #30011 )
...
Reference https://github.com/microsoft/playwright/issues/30000
2024-03-20 15:43:29 -07:00
Max Schmitt
dd0b6f7ec5
test: generate debug controller channel ( #30018 )
2024-03-20 16:56:29 +01:00
Max Schmitt
911fd204cf
devops: fix WebView2 tests ( #30009 )
...
Turns out we were using version 119.0.2151.58 before where the tests are
failing. After this change we are using 122.0.2365.92.
Fixes https://github.com/microsoft/playwright/issues/29695
Relates https://github.com/actions/runner-images/issues/9538
2024-03-19 23:18:20 +01:00
Pavel Feldman
0a22a86e2e
chore: prepare to reuse test server from ui mode (5) ( #30005 )
2024-03-19 14:08:21 -07:00
Dmitry Gozman
1bb463163b
feat(codegen): add button to generate toHaveScreenshot statement ( #29996 )
...
Fixes #29250 .
2024-03-19 14:01:04 -07:00
Pavel Feldman
54aca430b0
chore: prepare to reuse test server from ui mode (4) ( #29995 )
2024-03-19 13:00:49 -07:00
jonghoonpark
b929c0d8f7
feat(ui-mode): add key shortcuts for playwright uI test runner ( #29868 )
2024-03-19 12:36:42 +01:00
Dmitry Gozman
be1af15d57
feat: always enable ESM loader with the new API ( #29991 )
...
It does not require a process restart anymore, so safe to enable.
Fixes #29747 .
2024-03-18 21:54:25 -07:00
Dmitry Gozman
b41b802662
fix(test runner): avoid dependency tracking colliding between esm and cjs ( #29994 )
...
When collecting dependencies both from CJS loader and from ESM loader,
the latter would overwrite the dependencies set instead of appending.
Also make sure cts/cjs/mts/mjs are all supported equally.
References #29747 .
2024-03-18 17:17:58 -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
a6d1fb93de
fix(trace-viewer): encode attachment filenames as UTF-8 ( #29993 )
...
Fixes https://github.com/microsoft/playwright/issues/29967
Tested in Firefox, Chromium, and Safari. This now leads to "good
attachment names" in Chromium and Safari, for Firefox, it won't produce
attachments, it will open them inline, but this is not a regression, was
before like that already.
See here for the spec:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#filename_2
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-18 21:26:45 +01:00
Yury Semikhatsky
35db70ea1d
chore: trim file names longer than 60 chars (was 100) ( #29725 )
...
Test-specific output dir and snapshot names are trimmed to 60 chars
instead of just 100. The snapshot names are still trimmed at 100 chars
for backwards compatibility.
Reference https://github.com/microsoft/playwright/issues/29719
2024-03-18 12:53:15 -07:00
Pavel Feldman
ef4438ee99
chore: prepare to reuse test server from ui mode (2) ( #29966 )
2024-03-18 09:59:02 -07:00
Pavel Feldman
6faadf5160
chore: prepare to reuse test server from ui mode ( #29965 )
2024-03-18 09:50:11 -07:00
Max Schmitt
048d6669fd
fix(reuse): reset Origin Private File System API ( #29921 )
...
Fixes https://github.com/microsoft/playwright/issues/29901
This clears the Origin Private File System API when using VSCode
extension.
2024-03-15 17:40:46 +01: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
7cbef691ae
fix: throw error if setInputFile does not exist ( #29944 )
...
Fixes https://github.com/microsoft/playwright/issues/29941
2024-03-14 20:27:33 +01:00
Max Schmitt
93dc89fa1f
test: add file upload test case with popup handling ( #29937 )
...
https://github.com/microsoft/playwright/issues/29923
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-14 19:26:42 +01:00
Dmitry Gozman
349b25e61a
fix(storageState): try to collect storage state on existing pages first ( #29915 )
...
This helps in a case where navigating to an origin fails for some
reason, for example because a registered service worker loads some
content into the supposedly blank page.
Fixes #29402 .
2024-03-12 19:20:35 -07:00
Yury Semikhatsky
166d2d4fde
chore: separate results for repeated snapshot names ( #29880 )
...
Reference #29719
2024-03-12 16:10:43 -07: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
Yury Semikhatsky
59228f19ce
fix: tty.WriteStream method stubs for process.stdout/stderr ( #29865 )
...
Fixes #29839
2024-03-11 10:11:16 -07:00
Max Schmitt
94e61fc95a
test: bump ct typescript version ( #29855 )
2024-03-11 17:09:26 +01:00
Yury Semikhatsky
7f6f17d1c3
chore: simplify toMatchSnapshot names calculation ( #29862 )
...
Reference https://github.com/microsoft/playwright/issues/29719
2024-03-10 11:11:35 -07:00
Dmitry Gozman
d214778548
chore(test runner): move timeout handling to the top, stop inheriting runnable ( #29857 )
2024-03-08 15:19:36 -08:00
Dmitry Gozman
875ce1cf09
fix(chromium): use blockedReason as failure reason when available ( #29849 )
...
This covers blocked requests, e.g. mixed-content, that receive
`loadingFailed` with empty `errorText`.
Also, forcefully resolve `allHeaders()` in this case, since we know
there will be no actual network headers.
Fixes #29833 .
2024-03-07 14:07:04 -08:00
Dmitry Gozman
006ee7f3b0
feat: separate timeout for after hooks ( #29828 )
...
Instead of sharing the timeout with the test, and then extending it when
test times out, we give after hooks a separate timeout.
2024-03-06 12:31:54 -08:00
Sarkis Matinyan
0c3f60e95e
fix(ui): show stack frames in ui mode ( #29560 )
...
#29558 , #29500
2024-03-06 12:29:35 -08:00
Lukas Bockstaller
425f737eb6
feat: exposes tags in testInfo ( #29794 )
...
Fixes #29793 .
---------
Signed-off-by: Lukas Bockstaller <lukas.bockstaller@everest-erp.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-06 08:33:06 -08:00
Dmitry Gozman
1d4bdc6898
chore(test runner): make runAsStage throw and catch errors explicitly ( #29814 )
2024-03-05 16:35:11 -08:00
Dmitry Gozman
a3ed799cd5
fix(tsconfig): when extending, retain pathsBasePath from the original config ( #29822 )
...
This fixes a case where we incorrectly used the final config's base path
when resolving relative path mappings in the absence of the baseUrl.
Fixes #29816 .
2024-03-05 16:34:39 -08:00
Dmitry Gozman
abfd2c4e66
feat(ui mode): text filter should filter by explicit tags ( #29821 )
...
Fixes #29815 .
2024-03-05 10:58:55 -08:00
Dmitry Gozman
5eb8fea616
chore: rewrite worker main through TestInfoImpl._runAsStage ( #29644 )
2024-03-04 19:36:58 -08:00
Max Schmitt
291567b922
test(remove-cookie): do not rely on external websites for tests ( #29811 )
...
Fixes https://github.com/microsoft/playwright/issues/29795
2024-03-04 23:49:12 +01:00
Rui Figueira
73ffaf65d7
fix(codegen): fill action prevents omnibox navigation recording ( #29790 )
...
This PR is a fix proposal for a bug when trying to record a omnibox
navigation after a recorded action (e.g., `fill`).
The following test, included in this PR, reproduces the problem:
```ts
test('should record omnibox navigations after recordAction', async ({ page, openRecorder, server }) => {
const recorder = await openRecorder();
await recorder.setContentAndWait(`<textarea></textarea>`);
await Promise.all([
recorder.waitForOutput('JavaScript', 'fill'),
page.locator('textarea').fill('Hello world'),
]);
// for performed actions, 5 seconds is the time needed to ensure they are committed
await page.waitForTimeout(5000);
await page.goto(server.PREFIX + `/empty.html`);
await recorder.waitForOutput('JavaScript', `await page.goto('${server.PREFIX}/empty.html');`);
});
```
After performed actions (e.g., `click`), it successfully records the
navigation as long as there's at least a 5 sec. gap between both
actions. That happens because after that 5 sec. interval the performed
action is automatically commited and therefore the navigation is not
stored as a signal of that action.
The proposed fix for recorded actions also forces that action to be
automatically commited after 5 sec (for testing, I'm using 500ms to
speed up the test execution).
2024-03-04 12:31:03 -08:00
PaulTriandafilov
8e48ee714d
feat(playwright-core): add remove cookies api ( #29698 )
2024-03-02 07:27:01 -08:00
Pavel Feldman
ef924c14e7
chore: do not use project id in telereporter ( #29776 )
2024-03-01 21:44:08 -08:00
Pavel Feldman
bbcc3c1238
chore: remove private config usage from telereporter ( #29771 )
2024-03-01 13:14:12 -08:00
Dmitry Gozman
a8c26d235c
Revert "chore(role): cache element list by role ( #29130 )" ( #29765 )
...
This reverts commit 1ce3ca25a2
.
Added a regression test.
Fixes #29760 .
2024-03-01 09:37:28 -08:00
Pavel Feldman
baf2cdf936
fix(ct): stop-gap for shared file import ( #29744 )
...
Fixes: https://github.com/microsoft/playwright/issues/29739
2024-02-29 19:13:32 -08:00
Dmitry Gozman
0f30cdab23
feat(firefox): roll ff and ff-beta to 1442 ( #29751 )
...
This requires changes in `FFPage`.
Also fixing a new ff-specific test that introduced flakiness on the
bots.
Closes https://github.com/microsoft/playwright/pull/29750
Closes https://github.com/microsoft/playwright/pull/29724
Closes https://github.com/microsoft/playwright/pull/29681
Closes https://github.com/microsoft/playwright/pull/29678
2024-02-29 14:44:45 -08:00
Pavel Feldman
d9a00342c8
fix(HEAD): revert GET->HEAD migration, net-effect was negative ( #29738 )
...
Fixes: https://github.com/microsoft/playwright/issues/29732
2024-02-29 09:02:05 -08:00
Dmitry Gozman
aedd7ca0be
chore: make CRNetworkManager handle multiple sessions ( #29721 )
...
It was already handling worker sessions, but not OOPIFs. As a result,
some functionality was properly implemented only for OOPIFs and not for
workers.
This change removes OOPIFs fanout for network-related calls from CRPage
and moves that to the CRNetworkManager, now also covering workers.
2024-02-28 15:51:27 -08:00
Stevan Freeborn
52b803ecf5
feat(trace mode): add on-first-failure mode for traces ( #29647 )
...
Implements the changes suggested in #29531
2024-02-28 14:39:18 -08:00
Pavel Feldman
d48aadac7e
fix: point to the right cli program export ( #29715 )
...
Fixes: https://github.com/microsoft/playwright/issues/29711
2024-02-28 14:05:42 -08:00
Yury Semikhatsky
d8c16c1edf
chore: roll stable runner to 1.42.0-beta-1708998235000 ( #29675 )
2024-02-27 08:36:03 -08:00
Yury Semikhatsky
1c8e8bea7e
chore: roll stable test runner to 1.42.0-beta-1708994059000 ( #29672 )
2024-02-26 17:39:25 -08:00
Andrey Lushnikov
b183159fd0
test: add regression test for cross-context clicking ( #29668 )
...
References https://github.com/microsoft/playwright/issues/29096
2024-02-26 16:52:49 -08:00
Pavel Feldman
9d0430fa26
chore: strengthen linting ( #29669 )
2024-02-26 16:52:28 -08:00
Sander
015a1bcc1c
feat(ct): double unmounting component throws error ( #29650 )
2024-02-26 11:16:27 -08:00
Sander
7e502e91b2
fix(ct): solid pass children when they are defined ( #29648 )
2024-02-26 11:15:08 -08:00
Dmitry Gozman
d7c4ee901a
test: enable localhost proxy tests on webkit mac, unless bypass rules are set ( #29641 )
2024-02-23 14:27:30 -08:00
Jeppe Reinhold
4d868f6ba8
fix(ct-react+ct-react17): only pass children
to React.createElement
when they are defined ( #29592 )
2024-02-23 12:30:42 -08:00
Pavel Feldman
a3aea813bc
chore: implement server-based list files ( #29633 )
2024-02-23 08:29:44 -08:00
Dmitry Gozman
f9aebda5db
fix(fixtures): attribute teardown step to the right TestInfo instance ( #29523 )
2024-02-20 12:35:43 -08:00
Jean-François Greffier
6494bb30a0
JUnit codegen ( #29424 )
...
Codegen for JUnit
Fixes https://github.com/microsoft/playwright-java/issues/1039
Following JUnit5 integration
https://github.com/microsoft/playwright-java/issues/1369
2024-02-20 11:08:53 -08:00
Max Schmitt
84fefdaac6
fix(console-api): locator filter with hasText ( #29563 )
...
Relates https://github.com/microsoft/playwright/issues/29546
2024-02-20 17:35:11 +01:00
Yury Semikhatsky
f3fde992eb
chore: remove --project-grep, add wildcard support ( #29537 )
...
Reference #15128
2024-02-16 19:18:00 -08:00
Dmitry Gozman
269a293ba1
chore(test runner): allow TestInfoImpl without a TestCase ( #29534 )
...
This will be useful to run `beforeAll`/`afterAll` hooks with a separate
`TestInfo` instance, as well as run use helpers like
`_runAndFailOnError()` during scope teardown.
2024-02-16 12:43:13 -08:00
Max Schmitt
05e6b5b5c7
test: unflake electron tests ( #29520 )
2024-02-15 22:09:17 +01:00
Dmitry Gozman
dc9cddde95
chore: do not rely on zones for predefined steps ( #29485 )
...
This fixes some edge cases where fixtures and steps inside them were
attached to the wrong parent (see the new test).
This will also allow to replace some `runAsStep` calls with a flat list
of tasks to do that do not rely on lexical scope.
2024-02-15 12:49:08 -08:00
Dmitry Gozman
08afb34c14
chore(test runner): make timeout error an Error ( #29515 )
2024-02-15 11:38:13 -08:00
Dmitry Gozman
bd5403dcad
chore: remove --tag
and tagFilter
( #29468 )
...
This makes new tags filtered by the `grep`. New `TestCase.tags` API now
includes both old and new tags.
2024-02-15 11:37:16 -08:00
Dmitry Gozman
bc2d4302f5
test: fix a broken reporter test ( #29514 )
...
It failed to print an error with missing stack, e.g. a timeout error.
2024-02-15 09:45:48 -08:00
Sylvain Finot
b11b118e02
feat(chromium): expose parameters to generate outline / tagged PDF ( #29494 )
...
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2024-02-15 17:28:04 +01:00
Pavel Feldman
217c0618df
chore: rename find-related-tests to find-related-test-files ( #29483 )
2024-02-13 15:40:49 -08:00
Yury Semikhatsky
2693614c7a
Revert "fix(chromium): best effort 304 status on reload ( #29373 )" ( #29481 )
...
This reverts commit 17bc8f9a15
.
Reference https://github.com/microsoft/playwright/issues/28779
Fixes https://github.com/microsoft/playwright/issues/29441
2024-02-13 11:43:04 -08:00
Pavel Feldman
7aef5249d8
chore: pass the private data to the runner via config ( #29467 )
2024-02-13 09:34:03 -08:00
Max Schmitt
8fca4c86aa
test: make Android/WebView2 bots green ( #29477 )
2024-02-13 17:55:58 +01:00
Max Schmitt
30557ed28c
fix(electron): stalling on delayed process close ( #29431 )
2024-02-13 10:25:46 +01:00
Dmitry Gozman
f605a5009b
fix(esmLoader): do not serialize the whole compilation cache after each import ( #29464 )
...
Instead, send the newly created cache entry only.
References #29418 .
2024-02-12 16:39:53 -08:00
Max Schmitt
fe81790221
fix(accessibility): firefox with aria-invalid element ( #29462 )
...
Fixes https://github.com/microsoft/playwright/issues/29459
2024-02-12 12:12:31 -08:00
Max Schmitt
498b8bb269
fix(tracing): do not serialise out-of-process Buffers ( #29425 )
2024-02-12 21:03:38 +01:00
Max Schmitt
b15a7076dc
test: unskip 'msedge' tests ( #29456 )
...
This removes all msedge skips again and makes msedge equal with chromium
skip wise.
Fixes https://github.com/microsoft/playwright/issues/26711
2024-02-12 17:37:45 +01:00
Yury Semikhatsky
7834beb932
chore: extract --project-grep option for matching with regex ( #29445 )
...
Reference https://github.com/microsoft/playwright/issues/15128
2024-02-10 11:19:00 -08:00
Pavel Feldman
586d14f02c
chore: add find-related-tests command ( #29439 )
2024-02-09 19:02:42 -08:00
Dmitry Gozman
f0244b8a76
chore: rename handleLocator to addLocatorHandler ( #29443 )
2024-02-09 15:18:50 -08:00
Yury Semikhatsky
7a86bf4af6
chore: delete store.ts ( #29423 )
2024-02-08 12:55:18 -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
Pavel Feldman
84dea09cb9
fix(ct): resolve components used in tests during the vite build ( #29407 )
2024-02-07 20:39:45 -08:00
Dmitry Gozman
3abd7c808e
fix(connectOverCDP): send custom headers in /json/version request ( #29408 )
...
Fixes #29403 .
2024-02-07 17:41:21 -08:00
Dmitry Gozman
3331a40647
feat(test runner): tags/annotations ( #29248 )
...
API changes:
- `test(title, details, body)` where details contain `tag` and
`annotation`.
- similar `details` property added to `test.skip`, `test.fail`,
`test.fixme`, `test.only`, `test.describe` and other `test.describe.*`
variations.
- `TestProject.tagFilter`/`TestConfig.tagFilter` that supports logical
tag expressions with `(`, `)`, `and`, `or` and `not`.
- `--tag` CLI option to filter by tags.
- New annotations are available in `TestInfo.annotations` and
`TestCase.annotations`.
- New tags are available in `TestCase.tags`.
Reporter changes:
- `json` reporter includes new tags in addition to old `@smoke`-style
tags. **Breaking**: tags are now listed with the leading `@` symbol.
- `html` reporter filters by old and new tags with the same `@smoke`
token.
Fixes #29229 , fixes #23180 .
2024-02-07 16:31:25 -08:00
Dmitry Gozman
9e285ce919
docs: do not call custom expect message an "error message" ( #29390 )
...
Fixes #29378 .
2024-02-06 12:12:45 -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
Yury Semikhatsky
17bc8f9a15
fix(chromium): best effort 304 status on reload ( #29373 )
...
Reference https://github.com/microsoft/playwright/issues/28779
2024-02-05 16:56:42 -08:00
Pavel Feldman
4bafe71eb1
chore: unconflict ct test ports ( #29332 )
2024-02-05 16:47:39 -08:00
Pavel Feldman
5f5e058e96
fix(fixtures): tear down base fixture after error in derived ( #29337 )
...
Fixes https://github.com/microsoft/playwright/issues/29325
2024-02-05 16:47:15 -08:00
Max Schmitt
8c007fd3fc
fix(toHaveScreenshot): stylePath as first arg ( #29372 )
2024-02-05 22:52:16 +01:00
Max Schmitt
57d841ffae
test: vendor 'proxy' dependency ( #29370 )
...
Fixes https://github.com/microsoft/playwright/issues/28701
2024-02-05 21:57:14 +01: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
Yury Semikhatsky
79e379fc11
chore: do not set metadata.error for expect failure results ( #29310 )
...
The metadata.error change was brought back in
https://github.com/microsoft/playwright/pull/29271and it broke java port
as we could have error and result set simulteniously. This PR moves the
logic to the trace recorder instead and keeps the protocol contract
clear that either error or result is present, but not both.
2024-02-02 16:41:08 -08:00
Pavel Feldman
dd0ef72cd8
feat(tsconfig): respect tsconfig references ( #29330 )
...
Fixes https://github.com/microsoft/playwright/issues/29256
2024-02-02 16:18:44 -08:00
Dmitry Gozman
b9565ea26e
chore(test runner): refactor beforeAll/afterAll hooks and modifiers ( #29309 )
...
- Modifiers that only depend on the worker fixtures are implemented as
`beforeAll` hooks.
- Modifiers that depend on test fixtures are implemented as `beforeEach`
hooks.
- Pushed `_runAndFailOnError` down the stack, wrapping individual hooks
instead of the whole "before hooks" section.
- Reused the same code to run `beforeAll` and `afterAll` hooks and
modifiers.
**Behavior change**: `test.skip()` inside a `beforeAll` now skips the
hook and all tests in the suite.
2024-02-02 14:25:46 -08:00
Max Schmitt
a6e0af6767
feat: parse projects option as RegExp ( #29327 )
...
Fixes https://github.com/microsoft/playwright/issues/15128
Relates https://github.com/microsoft/playwright/pull/17244
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2024-02-02 23:05:20 +01:00
Pavel Feldman
fcd3c7b523
Revert "fix(ct): resolve paths before detecting JS" ( #29312 )
...
Reverts microsoft/playwright#29308
2024-02-01 21:11:30 -08:00
Pavel Feldman
eb8cbbbf62
fix(ct): resolve paths before detecting JS ( #29308 )
2024-02-01 21:06:31 -08:00
Rui Figueira
b88a008a87
feat(codegen): slider support ( #29087 )
2024-02-01 13:45:19 -08:00
Pavel Feldman
020a39860d
chore: polish network panel highlight ( #29299 )
...
Fixes https://github.com/microsoft/playwright/issues/29287
2024-02-01 13:44:26 -08:00
Pavel Feldman
4784139bb0
fix(test): do not allow mixing tests from different types ( #29284 )
...
Fixes https://github.com/microsoft/playwright/issues/29282
2024-02-01 11:59:56 -08:00
Yury Semikhatsky
a89dbe3813
devops: custom blob report name for test runner tests ( #29280 )
...
Otherwise uploaded reports all have clashing names report-1.zip and
report-2.zip.
2024-02-01 09:17:48 -08:00
Dmitry Gozman
cf6549687c
fix(trace viewer): reveal error location when it comes from the test ( #29268 )
...
Errors coming from the test runner do not have an associated `action`,
but have a `stack` that we can reveal.
2024-02-01 08:23:07 -08:00
Yury Semikhatsky
b5082e10fd
fix: do not retry missing snapshot errors ( #29272 )
...
When `updateSnapshots === 'missing'` we generate new expectations on the
first attempt and don't retry the test afterwards instead of trying it
retries-1 times and only writing new expectation on the last attempt.
This logic infects all serial mode suites that contain the test with
missing expectations, so they also will not be retried.
Reference https://github.com/microsoft/playwright/issues/29073
2024-01-31 15:33:38 -08:00
Tanay Vardhan
e9a8fc944c
fix: Add support for exif jpeg file formats ( #29208 )
2024-01-29 14:58:13 -08:00
Max Schmitt
cf70a01836
test: should serialize storageState with lone surrogates ( #29089 )
...
https://github.com/microsoft/playwright-dotnet/issues/2819
2024-01-29 19:22:33 +01:00
Dmitry Gozman
acc72c2663
fix(codegen): assertValue works with disabled input ( #29205 )
...
Also add tests for new codegen functionality.
Fixes #29161 .
2024-01-27 14:54:22 -08:00
Dmitry Gozman
5ee7179b13
fix(test runner): make TestTracing responsible for trace management ( #29181 )
...
... instead of a fixture.
Fixes #29133 , fixes #28733 , fixes #28476 .
2024-01-26 15:52:25 -08:00
Yury Semikhatsky
32034728ad
test: request overrides and routeFromHar ( #29200 )
...
Test that modifications from `route.fallback()` apply to the requests
before reading from/writing to HAR.
Reference https://github.com/microsoft/playwright/issues/29190
2024-01-26 15:19:01 -08:00
Max Schmitt
f741f08b3b
test: fix itest (follow up to #28932 )
2024-01-25 23:55:24 +01:00
Yury Semikhatsky
0113e8455b
fix: make TeleSuite.project work for all suites ( #29177 )
...
Fixes https://github.com/microsoft/playwright/issues/29173
2024-01-25 13:44:08 -08:00
Max Schmitt
4c4789c740
chore: validate deps during install ( #28932 )
...
Motivation: On Windows we call around 50 times `PrintDeps.exe` which
takes on a very fast machine 500+ms. On Linux we do it around 120 times
(`ldd`) which takes around 150ms.
This change validates the dependencies once on browser install (`npx
playwright install`). In case its failing, it will emit a warning, in
case of a success, it will create a marker file that the binary has been
validated. For future `launch()` calls, we'll read this file and if
exists, we'll not validate again. Otherwise we'll validate again.
Note: If the marker file is older than 30 days, the browser will be
validated again.
2024-01-25 20:55:53 +01:00
Pavel Feldman
6a14b1dc51
chore: automatically detect the dev server ( #29176 )
2024-01-25 11:46:47 -08:00
Dmitry Gozman
f5de6e5538
feat(codegen): generate multiple selectors to choose from ( #29154 )
...
When possible, "pick locator" generates:
- default locator;
- locator without any text;
- locator without css `#id`.
Fixes #27875 , fixes #5178 .
2024-01-25 07:35:58 -08:00
Dmitry Gozman
bc83d7084c
fix(chromium): emulate navigator.userAgentData along with UA ( #29159 )
...
Fixes #28989 , fixes #29139 .
2024-01-25 07:34:11 -08:00
Pavel Feldman
cec2ff1772
chore: split cli processing into cli endpoint and program ( #29131 )
2024-01-23 15:22:09 -08:00
Dmitry Gozman
8e607d509f
fix(recorder): disallow external imports ( #29129 )
...
Previously, new `Recorder` instance was given an existing
`InjectedScript`. However, we built a separate source for
`InjectedScript` vs `Recorder`, and both bundles contain their own copy
of all helper modules, e.g. `roleUtils`.
This resulted in two copies of helper modules, which is troublesome for
any module-level globals like a top-level cache. Depending on whether
`Recorder` or `InjectedScript` called into the helper, they would access
the different value of a module global, which lead to bugs.
To prevent this, we force any external dependencies to be imported
through the `InjectedScript.utils`.
2024-01-23 11:29:40 -08:00
Pavel Feldman
41c15cb176
chore: move vite root dir into template folder ( #29081 )
2024-01-23 09:40:05 -08:00
Yury Semikhatsky
fbf87ef904
fix: test.fail wrapper method ( #29112 )
...
Fixes https://github.com/microsoft/playwright/issues/29104
2024-01-22 19:47:27 -08:00
Yury Semikhatsky
b2de9bc865
fix: mock safari.pushNotification ( #29107 )
...
Fixes https://github.com/microsoft/playwright/issues/29032
2024-01-22 15:44:13 -08:00
Pavel Feldman
d61f99034a
fix(ct-react): do not reset mount hooks upon update ( #29072 )
...
Fixes https://github.com/microsoft/playwright/issues/29058
2024-01-19 12:55:36 -08:00
Dmitry Gozman
f3fac6f4e9
feat: page.handleLocator
that closes any interstitial pages/dialogs ( #29029 )
2024-01-19 12:35:00 -08:00
Pavel Feldman
71a48c2562
chore: migrate ct to vite5 ( #29033 )
...
Closes https://github.com/microsoft/playwright/issues/28607
2024-01-19 11:13:03 -08:00
Max Schmitt
e551506c9e
Revert "feat(codegen): add range input recording support ( #28767 )" ( #29069 )
2024-01-19 19:47:59 +01:00
Pavel Feldman
4010940315
chore: move off babel proposals to plugins ( #29053 )
2024-01-18 17:50:52 -08:00
Dmitry Gozman
b7d22b64e8
feat(merge): prepend bot name to global errors ( #29055 )
...
This way one can figure out where does the error come from.
An example merged report that exhibits the issue:
https://mspwblobreport.z1.web.core.windows.net/run-7563628632-1-2328b83af75801ab76bb06c214fee483cf5bc07c/index.html#?q=s%3Afailed%20s%3Aflaky
2024-01-18 15:11:32 -08:00
Yury Semikhatsky
c76f5294ce
fix: quote trace file path when printing error message ( #29052 )
...
Fixes https://github.com/microsoft/playwright/issues/29039
2024-01-18 14:23:12 -08:00
Pavel Feldman
ee3960529e
fix(ct): allow passing date, url, bigint as properties ( #29031 )
...
Closes: https://github.com/microsoft/playwright/issues/29028 ,
https://github.com/microsoft/playwright/issues/29027
2024-01-17 20:43:28 -08:00
Pavel Feldman
2328b83af7
test: add a props.children test ( #29026 )
...
Closes https://github.com/microsoft/playwright/issues/29023
2024-01-17 12:53:01 -08:00
Pavel Feldman
c82919859c
chore: add an image import component test ( #29016 )
...
Closes: https://github.com/microsoft/playwright/issues/22657
2024-01-17 09:06:02 -08:00
Pavel Feldman
1db18711a2
fix(ct): move import list into the compilation cache data ( #28986 )
2024-01-16 19:31:19 -08:00
Dmitry Gozman
e6d51cf7bd
chore: refactor actionability check to go through node-side retry ( #28982 )
...
This allows to inject a checkpoint in between the actionability checks.
Drive-by: cleanup `InjectedScriptPoll`-related code.
2024-01-16 19:11:41 -08:00
Dmitry Gozman
d023829dd5
fix(locator parser): allow escaped quotes in the digest function ( #29012 )
...
This supports mixed quotes locators in JavaScript where we are not sure
what quote is the correct one, so we normalize to unescaped single quote
when comparing with the original.
Drive-by: we were allowing single quotes in Python, Java and .NET, but
these are actually not allowed.
Regressed in #27718 .
Fixes #28630 .
2024-01-16 16:06:02 -08:00
Dmitry Gozman
9b657b54fb
fix(launcher): unregister global process handlers when all browser are closed ( #29011 )
...
Otherwise, we forever block SIGTERM and SIGHUP by registering a handler
that does not do anything (due to no browsers to close) and prevents
default handler that exits from running.
Fixes #28091 .
2024-01-16 14:41:26 -08:00
Dmitry Gozman
775ef30e43
fix(test runner): make TestCase.id not depend on the path separator ( #29010 )
...
Fixes #28991 .
2024-01-16 13:32:47 -08:00
Max Schmitt
7721f910b2
chore: roll stable-test-runner to 1.41.0-beta-1705101589000 ( #28993 )
2024-01-16 08:59:55 -08:00
jonghoonpark
4c0a972b69
feat(expect): Make toPass's option configurable by TestConfig ( #28231 )
...
Co-authored-by: jonghoon.park <jonghoon.park@lucentblock.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2024-01-16 12:28:38 +01:00
Pavel Feldman
92ad1b385c
chore: refactor import processing in ct ( #28975 )
2024-01-12 20:02:27 -08:00
Dmitry Gozman
48317af1cc
feat(trace): preserve noscript when javascript is disabled ( #28971 )
...
Closes #27504 , closes #27532 .
2024-01-12 12:11:39 -08:00
Yury Semikhatsky
8936885a67
fix(chromium): preserve header overrides in redirects ( #28962 )
...
Reference https://github.com/microsoft/playwright/issues/28758
2024-01-12 08:55:20 -08:00
Pavel Feldman
a0750b7854
chore: network panel polish ( #28924 )
2024-01-10 15:28:33 -08:00
Dmitry Gozman
3851d9b897
test: make sure asLocator works with has+hasText at the same time ( #28937 )
2024-01-10 12:42:55 -08:00
Max Schmitt
0f3bd9835f
test: update 'proxy' dependency to v2 ( #28895 )
...
This won't fix it yet, but prepare for a smaller version bump once the
upstream fix has been merged.
https://github.com/microsoft/playwright/issues/28701 .
2024-01-08 19:57:46 +01:00
Max Schmitt
1d8c6d4760
test: unflake 'android.launchServer' WS leak test ( #28891 )
...
This test was flaky all the time. The problem was that we were sending
messages on a WS connection which wasn't ready yet, so we lost some.
2024-01-08 19:07:06 +01:00
Yury Semikhatsky
1617779f3e
test: page.reload should return 304 status ( #28881 )
...
Test for https://github.com/microsoft/playwright/issues/28779
2024-01-05 13:49:45 -08:00
Sander
eebb69121e
fix(ct): vue update slots ( #28835 )
...
Due to [Vue 3.4](https://blog.vuejs.org/posts/vue-3-4 ): _"refactored
reactivity system that makes effect triggering more accurate and
efficient"_
closes: https://github.com/microsoft/playwright/issues/28830
2024-01-03 20:48:41 +01: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
Max Schmitt
abc746bd7a
chore: get rid of 'electron-to-chromium' dependency ( #28826 )
2024-01-03 19:49:37 +01:00
Sander
df4b11c169
fix(ct): react17 eslint errors ( #28783 )
2023-12-30 17:29:20 -08:00
Rui Figueira
778828cc43
feat(codegen): add range input recording support ( #28767 )
2023-12-30 17:22:57 -08:00
Sander
4d62784eeb
feat(ct): react component as props ( #28382 )
...
closes: https://github.com/microsoft/playwright/issues/28367#issuecomment-1830298864
2023-12-22 20:51:59 -08:00
Pavel Feldman
afb2582eaa
chore: render only react child ( #28775 )
...
Fixes https://github.com/microsoft/playwright/issues/28410
2023-12-22 17:15:49 -08:00
Yury Semikhatsky
b00fbdb388
test: update expectations for WebKit Windows ( #28774 )
...
Reference https://github.com/microsoft/playwright/issues/28726
2023-12-22 16:02:23 -08:00
Yury Semikhatsky
32ecb07f64
test: route.continue headers are propagated to redirected requests ( #28771 )
...
Failing test for https://github.com/microsoft/playwright/issues/28758
2023-12-22 14:31:41 -08:00
Pavel Feldman
fc5f34369a
chore: only highlight uncaught errors in source ( #28772 )
2023-12-22 14:19:53 -08:00
Pavel Feldman
eeb9e06d5e
chore: box step w/o modifying runtime errors ( #28762 )
2023-12-22 12:00:17 -08:00
Yury Semikhatsky
5f14d42723
Revert "fix: respect .only in --list mode" ( #28770 )
...
This reverts commit 9a5bfc54e5
.
As it breaks extension.
Reference #28709
2023-12-22 11:03:30 -08:00
Pavel Feldman
f5c57d0e98
chore: reuse image diff component in trace/html ( #28727 )
...
Fixes https://github.com/microsoft/playwright/issues/28685
2023-12-22 10:17:35 -08:00
Yury Semikhatsky
ff99aa33b0
fix: input events triggered by playwright actions should have composed=true ( #28730 )
...
Fixes https://github.com/microsoft/playwright/issues/28726
2023-12-21 15:25:16 -08:00
Pavel Feldman
5d9e08ac61
chore: box soft steps ( #28749 )
...
Fixes https://github.com/microsoft/playwright/issues/28259
2023-12-21 12:16:03 -08:00
Yury Semikhatsky
6d583a2dbe
fix: exit from merge-reports in type: "module" projects ( #28725 )
...
Fixes https://github.com/microsoft/playwright/issues/28699
2023-12-19 16:49:25 -08:00
Yury Semikhatsky
dcaa5758f0
fix: respect .only in --list mode ( #28721 )
...
Fixes https://github.com/microsoft/playwright/issues/28709
2023-12-19 12:24:54 -08:00
George Griffiths
4c848c0daf
feat(expect): Allow expect timeout to be configured outside of the runner ( #28716 )
...
Fixes #28702
2023-12-19 10:55:05 -08:00
Ben McCann
bbf588a992
feat(ct): upgrade to vite-plugin-svelte 3 ( #28624 )
2023-12-19 19:48:37 +01:00
Yury Semikhatsky
afc1ac7063
fix: errors in evaluate should be JavaScriptErrorInEvaluate ( #28706 )
...
Fixes https://github.com/microsoft/playwright/issues/28690
2023-12-19 10:47:43 -08:00
Sander
aaf9cc5b49
fix(ct): solid typecheck ( #28686 )
2023-12-16 12:42:50 -08:00
Max Schmitt
576b3406e3
test: tree gardening ( #28676 )
...
Looks like massaging the signals test in
8ab0660d1b (diff-f9d332d27364a8a58e52f5d7ffc180df7581589565b62186757b21839aabf889)
didn't make it fully green.
As of today it fails on Darwin 13 which is version 22, so we should not
run into the first if.
2023-12-15 17:39:31 -08:00
Yury Semikhatsky
a1a4133152
chore: extract unroute behavior tests into a separate file ( #28674 )
...
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-15 15:37:57 -08:00
Max Schmitt
35b61b7cdf
test: use net8.0 for webview2 tests ( #28665 )
2023-12-15 13:03:33 -08:00
Max Schmitt
39bdbbf029
test: codegen #28663 follow-up ( #28673 )
2023-12-15 12:05:13 -08:00
Max Schmitt
44c3ad5ceb
chore: make csharp library codegen more csharp like ( #28663 )
2023-12-15 10:24:26 -08:00
Yury Semikhatsky
9c845365f7
chore: revert TestProject.botName for this release ( #28670 )
...
This is essentially a revert of f88288d71d
Reference https://github.com/microsoft/playwright/issues/27284
2023-12-15 09:48:34 -08:00
Yury Semikhatsky
d1e13557fb
test: fulfill/continue/fallback do not throw if page has been closed ( #28659 )
...
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-15 09:45:13 -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