Max Schmitt
5f366088be
chore: get rid of rimraf package ( #27790 )
...
This seems more reliable nowadays as rimraf.
https://github.com/microsoft/playwright/issues/27712
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-26 19:41:00 +02:00
Max Schmitt
f48861ddee
fix(inspector): highlight xpath/css locators without engine prefix ( #27742 )
...
Motivation: As of today when a user inspects a Locator which is a xpath,
it won't work if the user has not prefixed it with `xpath=` because we
internally compare the given with the generated locator.
Works: `locator('xpath=//div[contains(@class, "foo")]')`
Does not work: `locator('//div[contains(@class, "foo")]')`
Relates
https://github.com/microsoft/playwright/issues/27707#issue-1952360264
Fixes
https://github.com/microsoft/playwright-dotnet/issues/2718#issuecomment-1771073816
---------
Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-23 18:23:28 +02:00
Dmitry Gozman
6fe31ab52c
feat: support alternative quotes in js parseLocator() ( #27718 )
...
Fixes #27707 .
2023-10-20 08:42:29 -07:00
Pavel Feldman
091f6883f5
chore: remove the usages of raw target closed message constant ( #27669 )
2023-10-17 15:35:41 -07:00
Josh Lee
08bc4fd801
fix(registry): don't download x64 binaries on other platforms ( #27462 )
...
On Linux platforms, specifically check that process.arch is x64, rather
than treating it as 'not arm64'.
Treat Raspbian's /etc/os-release file as Debian.
Document the supported platforms somewhat.
Fixes #27453
2023-10-17 12:54:20 -07:00
Dmitry Gozman
d83d9ce268
chore: make sure that we print warning for unsupported OS ( #27610 )
...
Also, fix some missing paths in download lists.
2023-10-16 10:49:57 -07:00
Dmitry Gozman
fc32ca676b
feat: check client version on the server ( #27585 )
2023-10-13 21:02:30 -07:00
Pavel Feldman
f212fd1a83
chore: unify target closed errors ( #27540 )
2023-10-12 11:05:34 -07:00
Pavel Feldman
11a4b3f7f5
chore: remove parsed stack trace ( #27496 )
2023-10-09 17:04:16 -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
mash-graz
2c56af3a3b
fix: use most recent stable debian release browser binaries in case of debian testing and unstable ( #27397 )
...
Fixes : #27398
2023-10-03 12:35:21 -07:00
Dmitry Gozman
08e71fec5d
test: add installation tests for supposed plugin story ( #27331 )
2023-09-28 17:18:22 -07:00
Dmitry Gozman
bb4268d165
fix(locators): do not escape regular expressions with u or v flag ( #27188 )
...
Fixes #27163 .
2023-09-19 13:16:50 -07:00
Dmitry Gozman
d9eabda09d
fix(locators): escape quotes in regular expressions ( #27002 )
...
Fixes #26974 .
2023-09-11 15:49:04 -07:00
Max Schmitt
c327d5af5b
chore: roll TypeScript to 5.2.2 ( #26977 )
2023-09-11 18:18:19 +02:00
Andrey Lushnikov
54e4e5caca
fix: implement atomic append for compilation cache ( #26830 )
...
Note: this reverts commit ffd6cf60eb .
Fixes #26769
2023-08-31 17:55:13 -07:00
Pavel Feldman
4948920437
fix(ui): do not log from beforeAll twice ( #26799 )
...
Fixes https://github.com/microsoft/playwright/issues/26790
2023-08-31 17:34:15 -07:00
Pavel Feldman
00e6540799
feat(ui): show test trace events live ( #26619 )
2023-08-22 15:46:41 -07:00
Max Schmitt
2edecd4244
test: add libsoup3 related tests ( #26572 )
...
https://github.com/microsoft/playwright/issues/22569
https://github.com/microsoft/playwright/issues/23259
2023-08-21 22:12:12 +02:00
Jean-François Greffier
dcab22c307
feat: display package manager in CLI help and tips ( #26450 )
...
Display `npx playwright`, `yarn playwright` or `pnpm exec playwright` in
CLI
Fixes #21425
2023-08-17 08:53:08 -07:00
Andrey Lushnikov
ffd6cf60eb
fix: eliminate race in compilation cache ( #26353 )
...
Fixes https://github.com/microsoft/playwright/issues/24569
2023-08-08 15:09:20 -07:00
Yury Semikhatsky
8e2f33673b
chore(blob): change file name to report{-suffix}{-shard}.zip ( #24592 )
2023-08-03 13:23:30 -07:00
Andrey Lushnikov
f135b5f7a8
fix: make sure monotonicTime() value is reasonable ( #24518 )
...
https://github.com/microsoft/playwright/issues/24432
2023-07-31 09:42:08 -07:00
Pavel Feldman
b39fd7283f
chore: skip tests that fail in cross-machine service mode ( #24412 )
2023-07-25 16:47:04 -07:00
Dmitry Gozman
9d0bba9c99
fix(tracing): do not throw on missing attachments ( #24409 )
...
Fixes #24378 .
2023-07-25 14:32:56 -07:00
Dmitry Gozman
4c8912f74e
chore: remove separate process that cleans up directories ( #24376 )
...
A separate process is `spawnSync`'ed on process exit to cleanup
temporary directories, introduced in #13769 that followed up after
#13343 .
A separate process might stall for various fs-related issues, which
prevents the original process from exiting.
With the recent changes, we always gracefully close and cleanup after
all launched executables before calling `process.exit()`, and so it
should only be possible to leave temp directories when using Playwright
and calling `process.exit()` programmatically without closing browsers.
We can now drop the extra process and rely on `rimraf.sync` for
last-resort cleanup in these rare circumstances.
2023-07-24 15:24:29 -07:00
Andrey Lushnikov
fee08a6d3b
fix: properly handle character sets in globs ( #24371 )
...
https://github.com/microsoft/playwright/issues/24316
2023-07-24 09:49:05 -07:00
Dmitry Gozman
b4c412eb1f
chore: replace process.exit with graceful closure ( #24242 )
...
Everywhere we call `process.exit()`, we might actually need to
gracefully close all browsers.
2023-07-24 08:29:29 -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
Marcin Strzyz
d5e7b4f16f
chore: update rimraf package to version 4 to eliminate "promisify" ( #24190 )
...
Migrate to version 4 which returns a promise rather than leverages a
callback. -> https://www.npmjs.com/package/rimraf?activeTab=readme
- contains its own types, eliminate "@types/rimraf"
- Parameter `maxBusyTries` changed to `maxRetries`
2023-07-18 19:58:07 +02: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
Pavel Feldman
067faa50d7
chore: migrate Promise.race to scopes to prevent leaks ( #24160 )
2023-07-11 10:38:08 -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
Dmitry Gozman
86c1abd934
chore: introduce ReporterV2 interface ( #23983 )
2023-06-30 13:36:50 -07:00
Dmitry Gozman
1d0b48f18b
fix(route): handle escapes in the glob pattern ( #23932 )
...
Fixes #23303 .
2023-06-28 16:33:04 -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
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
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
Pavel Feldman
eacfff8127
chore: make trace viewer work over http ( #23531 )
2023-06-05 16:30:30 -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
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
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
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
b814e8a5f1
chore: bring back per test artifacts ( #23153 )
2023-05-23 09:36:35 -07:00
Pavel Feldman
631edc9744
chore(internal): generate code in jsonl ( #23124 )
2023-05-20 10:15:33 -07:00
Dmitry Gozman
be7984bdc9
fix(unroute): do not compare regexp instances ( #23101 )
...
References #23092 .
2023-05-17 16:27:32 -07:00
Dmitry Gozman
73f9f81db4
feat(locators): allow ambiguous locators when parsing ( #23034 )
...
This supports locators like `nth(0)` and `locator('div', { hasText:
'foo' })` that are not canonical, but still work.
Fixes #22990 , #22965 .
2023-05-15 19:42:51 -07:00
Max Schmitt
edd003c230
chore: validate expected image buffer when comparing images ( #23030 )
...
Fixes https://github.com/microsoft/playwright/issues/23012
2023-05-15 23:32:16 +02:00
Pavel Feldman
59b9a39740
chore: add string attachments to trace ( #22921 )
2023-05-11 16:32:32 -07:00
Dmitry Gozman
f2ad5bbfbb
fix(isVisible): return false during navigation ( #22943 )
...
Instead of throwing "Execution context was destroyed" error.
Drive-by: improve internal error messages for `ScopedRace` errors.
Fixes #22925 .
2023-05-10 16:56:59 -07:00
Pavel Feldman
5e0574dc44
chore: list attachments in the trace ( #22919 )
...
Fixes https://github.com/microsoft/playwright/issues/22736
2023-05-09 17:53:01 -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
Pavel Feldman
b868f3a9d0
chore: extend raw stack ( #22794 )
2023-05-03 13:53:02 -07:00
Pavel Feldman
e9373dfb6e
chore: make client-side instrumentation non-nullable ( #22694 )
2023-04-28 08:57:43 -07:00
Pavel Feldman
d34c4e99f5
chore: add step attachments into the expect trace event ( #22543 )
2023-04-25 17:38:12 -07:00
Pavel Feldman
bbc47ba315
chore: ensure web assertions are merged in trace ( #22544 )
2023-04-21 10:07:23 -07:00
Dmitry Gozman
08cef43e82
feat(locator): remove locator.and and locator.not ( #22223 )
...
Not shipping for now, after API review.
2023-04-05 16:28:13 -07:00
Dmitry Gozman
35afb056ea
feat(locator): filter({ hasNotText }) ( #22222 )
...
The opposite of `filter({ hasText })`.
2023-04-05 14:13:28 -07:00
Dmitry Gozman
bc1de5f28d
feat(locator): filter({ hasNot }) ( #22219 )
...
This is the opposite of `filter({ has })`.
2023-04-05 12:45:46 -07:00
Johannes Loher
bd698efaef
fix(webServer): follow relative redirects when checking the url ( #22035 )
...
Fixes https://github.com/microsoft/playwright/issues/22144
2023-04-05 10:39:35 +02:00
Pavel Feldman
b1fdf0bcb6
chore: nest test steps based on zones ( #22108 )
...
Fixes : #21423
2023-03-30 21:05:07 -07:00
Dmitry Gozman
539d9873c2
feat: rename Locator.filter(locator) to Locator.and ( #22101 )
2023-03-30 14:41:30 -07:00
Dmitry Gozman
e6148bb725
feat: Locator.not(locator) ( #22066 )
2023-03-30 08:52:30 -07:00
Dmitry Gozman
525097d465
feat: Locator.filter(locator) ( #21975 )
...
Produces a locator that matches both locators.
Implemented through `internal:and` selector.
Fixes #19551 .
2023-03-27 14:29:30 -07:00
Dmitry Gozman
d10fac4f6a
feat: Locator.or(locator) ( #21884 )
2023-03-22 15:28:59 -07:00
Dmitry Gozman
80a37ec171
fix(socks): use happy-eyeballs to create a connection ( #21847 )
2023-03-21 14:12:24 -07:00
Yury Semikhatsky
1004e762aa
chore(fetch): host does not include port ( #21845 )
2023-03-21 13:14:50 -07:00
Pavel Feldman
c45d8749b0
chore: split trace events into phases ( #21696 )
2023-03-15 22:33:40 -07:00
Dmitry Gozman
bde2e90973
fix(selector generator): do not produce has-text="foo"s ( #21679 )
...
There is no locator counterpart for it. Instead, produce a regex.
Also fix locator generator to not produce incorrect locator in this
case.
Fixes #21649 .
2023-03-15 13:43:42 -07:00
Pavel Feldman
27048adebe
chore: introduce testInfo.testId ( #21670 )
2023-03-14 15:58:55 -07:00
Pavel Feldman
a12e909a40
chore(ui): start adding ui mode tests ( #21601 )
2023-03-12 15:18:47 -07:00
Dmitry Gozman
ea8aa63f1a
feat: support PWTEST_PROFILE_DIR in run-server ( #21582 )
...
This creates one profile per connection in the specified directory.
2023-03-10 19:07:40 -08:00
Pavel Feldman
cffb6ac269
chore: move sever/isomorphic to utils/ to use it in client ( #21445 )
2023-03-06 18:49:14 -08:00
Pavel Feldman
86ca7e3949
chore: introduce manual promise race ( #21358 )
...
Fixes https://github.com/microsoft/playwright/issues/21345
2023-03-06 08:50:03 -08:00
Yury Semikhatsky
60e5a93832
fix(store): support text and binary values ( #21006 )
2023-03-01 08:49:31 -08:00
Pavel Feldman
de3a5e2a91
chore(trace): include expect steps in a trace ( #21199 )
2023-02-28 13:26:23 -08:00
Pavel Feldman
81bd637d94
chore: merge traces into a single zip file ( #21242 )
2023-02-27 22:31:47 -08:00
Pavel Feldman
09f77c41dd
chore: migrate to protocol's StackFrame type ( #21198 )
2023-02-24 18:36:15 -08:00
Pavel Feldman
3fa19e80ad
chore: wrap expect call in a zone ( #21191 )
2023-02-24 12:17:03 -08:00
Pavel Feldman
b61036d22a
chore(trace): dedupe filenames, not stack frames ( #21160 )
2023-02-23 09:10:09 -08:00
Pavel Feldman
55c95a4463
chore: do not send stacks as a part of the call metainfo ( #21089 )
2023-02-22 21:08:47 -08:00
Max Schmitt
ae369144b6
chore: consolidate http/https fetching ( #21104 )
...
Fixes https://github.com/microsoft/playwright/issues/20784
Supersedes https://github.com/microsoft/playwright/pull/21076
2023-02-22 17:09:56 +01:00
Pavel Feldman
3f8f2a0fdd
chore: do not use library stack capturer in test runner ( #21075 )
2023-02-21 19:24:17 -08:00
Pavel Feldman
06fc72b6ed
revert( #12706 ): also fix related bugs it introduced ( #21070 )
2023-02-21 14:15:11 -08:00
Dmitry Gozman
24c8d45c70
chore: enable tsc for ttest sources ( #21018 )
2023-02-19 11:18:07 -08:00
Andrey Lushnikov
4feb7c9e3b
fix: best-effort support for KDE Neon ( #20920 )
...
This is a yet-another linux distribution based on Ubuntu.
Fixes #20838
2023-02-15 09:13:14 -08:00
Andrey Lushnikov
fdcd7b549d
chore: mark comparator option back as experimental ( #20816 )
...
This reverts commit 303c5998f8 .
Reason for revert: I tried enabling `ssim-cie94` by default on
ionic-framework test suite, and it proves to be overly strict for their
usecase.
2023-02-13 11:11:44 -08:00
Pavel Feldman
0678b6575f
chore(watch): allow toggling browser ( #20738 )
2023-02-08 08:36:02 -08:00
Andrey Lushnikov
303c5998f8
feat: release "comparator" option from experiment ( #20720 )
...
The option defines a comparator to be used to compare images.
Possible values are `"pixelmatch"` and `"ssim-cie94"`.
Note: This reverts commit 8167f8bf54 .
2023-02-07 08:51:48 -08:00
Dmitry Gozman
c27ad35299
fix(locators): properly escape slash inside attributes ( #20510 )
...
Fixes #20471 .
2023-01-30 13:27:41 -08:00
Dmitry Gozman
38f260cc51
test: unflake "should respect interval" ( #20298 )
2023-01-23 17:57:37 -08:00
Max Schmitt
05843bdfd9
chore: support Debian 11 arm64 ( #19676 )
...
https://github.com/microsoft/playwright/issues/18319
2023-01-23 15:54:25 +01:00
Dmitry Gozman
b700c08dc5
feat(screenshots): when actual and expected have different sizes, pad and produce the diff image ( #20208 )
...
Also show sizes in the html report to easier spot the size mismatch
issue.
<img width="1030" alt="diff"
src="https://user-images.githubusercontent.com/9881434/213327632-b8fcd69c-8d08-460c-9de1-b5f4f8c56359.png ">
Fixes #15802 .
2023-01-20 19:41:43 -08:00
Dmitry Gozman
eafa6fda13
fix(expect): poll/toPass should not wait over specified timeout ( #20266 )
...
Drive-by: unflake some timeout-dependent tests.
2023-01-20 15:47:24 -08:00
Max Schmitt
df05c00da3
fix: filter out pwt stacks correctly ( #20158 )
...
Fixes https://github.com/microsoft/playwright/issues/20155
2023-01-17 22:38:30 +01:00