110 Commits

Author SHA1 Message Date
Pavel Feldman
fce45210c1
feat(driver): report backend state (#16477) 2022-08-11 13:42:16 -07:00
Pavel Feldman
c84fbc2e4e
feat(driver): add reuse and navigate commands (#16420) 2022-08-10 10:57:28 -07:00
Pavel Feldman
737975bc7d
chore: expose hidehighlight from server (#16387) 2022-08-09 16:42:55 -07:00
Pavel Feldman
c99d6cdd4c
chore: enable reused browser autoclose (#16363) 2022-08-08 17:16:13 -07:00
Max Schmitt
1ca6635bb8
fix(cli): store trace/storage/har on SIGINT (#16339) 2022-08-09 00:13:38 +02:00
Pavel Feldman
2d7c003ada
chore: minor inspect tweaks (#16334) 2022-08-08 10:39:54 -07:00
Pavel Feldman
8ed238843b
chore: allow inspecting element from server (#16324) 2022-08-05 19:34:57 -07:00
Pavel Feldman
db2972792b
feat(server): queue run-server clients (#16234) 2022-08-03 19:37:06 -07:00
Pavel Feldman
df9a318d14
chore: open browser for reuse, destroy run server on detach (#16183) 2022-08-02 21:09:39 -07:00
Pavel Feldman
5a79054544
feat(innerloop): allow reusing browsers over the remote connection (#16065) 2022-07-31 14:31:17 -07:00
Pavel Feldman
d73f9b7b88
chore: experimental test server implementation (#16033) 2022-07-29 11:40:33 -07:00
Dmitry Gozman
c4dae2a628
fix(cli): remove --save-trace from open command (#15905) 2022-07-25 09:16:20 -07:00
Dmitry Gozman
ba3c8ffa5c
test: make sure browser crashes in CLI tests are marked as such (#15821) 2022-07-20 15:32:57 -07:00
Dmitry Gozman
d60b8aba23
fix(codegen): handle more context options (#15319)
The following options now work across languages:
- `recordHar`
- `serviceWorkers`

In addition, object properties are now sorted alphabetically.
Drive-by: fixed `--target` help message to include all available targets.
2022-07-05 13:30:46 -07:00
Pavel Feldman
7bd72716f9
feat(har): introduce the slim mode (#15053) 2022-06-22 14:44:12 -07:00
Pavel Feldman
eb87966441
feat(har): disambiguate requests by post data (#14993) 2022-06-20 14:14:40 -07:00
Yury Semikhatsky
2bdb0998bd
feat(cli): block-service-workers option (#14931) 2022-06-16 16:03:35 -07:00
Dmitry Gozman
6822d03f0b
fix(cli): default to no timeout (#14769) 2022-06-09 21:07:57 -07:00
Dmitry Gozman
6c739eb345
feat(cli): option to record har (#14696)
`npx playwright open --save-har=file.har` produces a HAR file that
can be later inspected or used for mocks.
`--save-har-glob="**/*.{png,woff2}"` option can be used to
produce a smaller har that only contains entries matching the glob.
2022-06-08 10:59:50 -07:00
Pavel Feldman
63ea81ec54
chore: make bundles typed (#13620) 2022-04-18 17:50:25 -07:00
Yury Semikhatsky
e2fff31848
chore: send run_id from agent to server (#13542) 2022-04-13 12:13:35 -07:00
Max Schmitt
95d4041b8b
chore: fix mark-docker-image CLI command (#13499) 2022-04-12 10:10:34 -07:00
Yury Semikhatsky
9712b9ee08
fix: match against secure path (#13442) 2022-04-08 14:57:43 -07:00
Ross Wollman
db7bd8ebd2
chore: don't auto-install browsers if global install (#13299) 2022-04-08 10:46:24 -07:00
Pavel Feldman
e79b90f454
chore: use utils via index export (5) (#13413) 2022-04-07 20:18:22 -07:00
Yury Semikhatsky
f803a929e4
feat: pass server address as argument (#13412) 2022-04-07 17:22:52 -07:00
Pavel Feldman
a3c02222bf
chore: use utils via index export (4) (#13404) 2022-04-07 14:36:13 -07:00
Pavel Feldman
40d5e3a3c9
chore: use utils via index export (3) (#13403) 2022-04-07 13:55:44 -07:00
Pavel Feldman
bde7bf4ea9
chore: move registry & dispatchers to under server (#13370) 2022-04-06 22:21:27 -07:00
Pavel Feldman
5ae2017a5b
chore: always import type (#13365) 2022-04-06 14:57:14 -07:00
Pavel Feldman
1c3db811f5
chore: move to folder-based deps lists (#13361) 2022-04-06 14:40:19 -07:00
Ross Wollman
42798b5857
chore: warn against using globally scoped install (#13196) 2022-04-03 20:26:23 -07:00
Andrey Lushnikov
a87794dae6
fix: demand --force to re-install stable browser channels (#13200)
This patch will check if browser channel is already installed.
If it is, it'll abort installation with the following error:

```
aslushnikov:~/prog/playwright$ npx playwright install msedge
Failed to install browsers
Error:
╔═════════════════════════════════════════════════════════════════╗
║ ATTENTION: "msedge" is already installed on the system!         ║
║                                                                 ║
║ "msedge" installation is not hermetic; installing newer version ║
║ requires *removal* of a current installation first.             ║
║                                                                 ║
║ To *uninstall* current version and re-install latest "msedge":  ║
║                                                                 ║
║ - Close all running instances of "msedge", if any               ║
║ - Use "--force" to install browser:                             ║
║                                                                 ║
║     npx playwright install --force msedge                       ║
║                                                                 ║
║ <3 Playwright Team                                              ║
╚═════════════════════════════════════════════════════════════════╝
```

To re-install browser channel, use `--force`.

Fixes https://github.com/microsoft/playwright/issues/13061
2022-04-01 10:05:53 -07:00
Andrey Lushnikov
4ab4c0bda1
feat: detect docker version and Playwright version mismatch (#12806)
This patch prints a friendly instructions in case Docker image version
mismatches Playwright version and there are missing browser
dependencies.

With this patch, Playwright will yield the following error:

```
root@f0774d2b2097:~# node a.mjs
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

browserType.launch:
╔════════════════════════════════════════════════════════════════════════════════════════════╗
║ Host system is missing dependencies to run browsers.                                       ║
║ This is most likely due to docker image version not matching Playwright version:           ║
║ - Playwright: 1.22.0                                                                       ║
║ -     Docker: 1.21.0                                                                       ║
║                                                                                            ║
║ Either:                                                                                    ║
║ - (recommended) use docker image "mcr.microsoft.com/playwright:v1.22.0-focal"              ║
║ - (alternative 1) run the following command inside docker to install missing dependencies: ║
║                                                                                            ║
║     npx playwright install-deps                                                            ║
║                                                                                            ║
║ - (alternative 2) use Aptitude inside docker:                                              ║
║                                                                                            ║
║     apt-get install libgbm1                                                                ║
║                                                                                            ║
║ <3 Playwright Team                                                                         ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝
    at file:///root/a.mjs:3:10 {
  name: 'Error'
}```

Fixes #12796

Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2022-03-25 14:45:53 -07:00
Siddharth Singha Roy
a2b3d4f570
feat(cli) : allow passing PlaywrightServer.startDefault parameters via cli (#12530) 2022-03-07 09:15:46 -08:00
Max Schmitt
3db4b48bd3
fix(cli): fix wrong property for passing browser name (#12489) 2022-03-03 17:17:23 +01:00
Pavel Feldman
a612a3526a
chore: auto-detect ts esm mode (#12292) 2022-03-01 12:56:26 -08:00
Dmitry Gozman
3c2bca2768
fix(test loader): implement tsconfig paths through resolveFilename (#12357)
This uses `Module._resolveFilename` to intercept module resolution and
check `tsconfig.paths` similarly to pirates usage ot `Module._compile`.

Previously, we resolved during compilation that required reproducible
resolution due to caching. Now we can resolve as we go and support
all `tsconfig.paths`.
2022-02-25 15:43:58 -08:00
Dmitry Gozman
47cc7c4ae8
chore: refactor internal cli commands to use commander (#12146) 2022-02-16 09:54:12 -08:00
pierscowburn
5db7ce5964
fix: propagate exit code in experimental mode (#12070)
In experimental ESM mode a child process is forked in order to run the tests. Currently the exit code of this child process is not propagated to the exit code of the parent process, which means that the process exits with a status code of `0` even if some of the tests failed.

This makes it difficult to use Playwright in CI in experimental mode, as the CI pipeline as a whole will pass despite the test failures.

This change addresses this by propagating the exit code in the case where it is non-zero.
2022-02-15 13:10:35 -08:00
Max Schmitt
7e7996a7b7
chore(dotnet): do not use global CLI and use ps1 instead (#12025)
Fixes https://github.com/microsoft/playwright-dotnet/issues/2005
2022-02-11 11:26:16 -08:00
Dmitry Gozman
66b5cf5ae1
feat(remote): make PlaywrightServer work with browserType.connect (#11849)
This changes PlaywrigtServer to serve connections like `ws://localhost:3333/?browser=chromium`:
- launches the browser;
- talks `browserType.connect`-style protocol over websocket;
- compatible with `connectOptions` fixture.

```js
await playwright.chromium.connect({ wsEndpoint: 'ws://localhost:3333/?browser=chrome' });
```
2022-02-10 16:36:23 -08:00
Yury Semikhatsky
1e00218ead
feat(tracing): suport loading multiple files in trace viewer (#11880) 2022-02-07 17:05:42 -08:00
Pavel Feldman
1215057ca1
chore: use ipc transport for out-of-process driver (#11826) 2022-02-02 21:26:45 -08:00
Pavel Feldman
c82f2641d7
fet(list-files): report per-project test dir and filters (#11764) 2022-02-01 08:08:56 -08:00
Andrey Lushnikov
0606afb2e6
chore: rename env variables (#11661)
These variables aren't CLI-only anymore, so pick some more general
names for them.

Note: all language ports would need to follow-up with the rename
after the next roll.

Fixes #11450
2022-01-27 09:06:43 -08:00
Pavel Feldman
baf0e5b47a
chore: implement lightweight test listing (#11551) 2022-01-21 19:11:22 -08:00
Max Schmitt
43b7e6c26d
chore: allow CLI version override (#10814) 2021-12-08 23:32:21 -08:00
Pavel Feldman
7765131a14
feat(acceptDownload): revert acceptDownload (#10709) 2021-12-06 09:25:24 -08:00
Max Schmitt
da02c2e2c8
chore: add --dry-run to install-deps CLI command (#10520) 2021-11-25 01:04:42 +01:00