Dmitry Gozman
672f3f9960
feat(popups): introduce BrowserContext.setDefaultHTTPHeaders ( #1116 )
2020-02-26 12:42:20 -08:00
Yury Semikhatsky
4f69930fbe
fix(chromium): make locale overrides work ( #1108 )
2020-02-26 11:01:46 -08:00
Pavel Feldman
3afaeef557
feat(socket): destroy contexts upon disconnect ( #1119 )
2020-02-26 11:01:01 -08:00
Dmitry Gozman
dcdc7db158
feat(chromium): use no-startup-window to not create default context ( #1106 )
2020-02-25 11:43:17 -08:00
Pavel Feldman
ebcaadedf1
feat(log): log only user api calls with DEBUG=pw:api ( #1029 )
2020-02-25 07:09:27 -08:00
Dmitry Gozman
d97ea70804
chore: move more injected code to injected to reduce evaluation size ( #1093 )
2020-02-25 07:06:20 -08:00
Dmitry Gozman
ba29470cc1
fix(api): rename relativePoint to offset, remove unused parameters from input ( #1092 )
2020-02-24 21:12:02 -08:00
aesyondu
fdfec8eb2a
fix(platform) instanceof bug between execution contexts of RegExp object ( #1048 )
...
First encountered at jest-playwright repo:
https://github.com/mmarkelov/jest-playwright/issues/38
Solution based on:
https://stackoverflow.com/questions/4339288/typeof-for-regexp#comment4724685_4339350
2020-02-24 18:32:17 -08:00
Dmitry Gozman
6acc439450
feat(api): move targets from CRBrowser to CRBrowserContext ( #1089 )
...
This makes them work for default context.
2020-02-24 14:35:51 -08:00
Dmitry Gozman
a43b4095e1
chore: make BrowserContext an interface, with 3 implementations ( #1075 )
...
This is in preparation for moving targets to BrowserContext, so that one can work with targets in default context.
2020-02-24 08:53:30 -08:00
Dmitry Gozman
3677818202
fix(api): browser.serviceWorker -> target.serviceWorker ( #1076 )
2020-02-24 08:31:58 -08:00
Dmitry Gozman
1f8508d1ed
feat(waitFor): update various waitFor options to be a single boolean ( #1066 )
2020-02-22 09:16:28 -05:00
Dmitry Gozman
40164298a8
api: remove ElementHandle.visibleRatio ( #1069 )
2020-02-19 16:08:25 -08:00
Dmitry Gozman
33824aa1d7
feat(click): waitForInteractable option, defaults to true ( #934 ) ( #1052 )
2020-02-19 09:34:57 -08:00
Dmitry Gozman
9f1edadbff
fix(navigation): do not count random failures as navigation cancel ( #1055 )
2020-02-18 19:58:04 -08:00
Dmitry Gozman
223685ee7b
chore: strip out injected script from protocol logs ( #1054 )
2020-02-18 19:56:59 -08:00
Pavel Feldman
1ee657823e
feat(viewport): update defaults to 1280x720, fix Firefox ( #1038 )
2020-02-18 09:16:32 -08:00
Pavel Feldman
f2b2d72693
fix(input): emit change events upon page.setInputFiles ( #1028 )
2020-02-18 09:15:47 -08:00
Daniel Imms
8a7728da3d
docs: document LaunchOptions.dumpio ( #1051 )
2020-02-18 08:56:20 -08:00
Joel Einbinder
3656403f2d
fix(keyboard): Add mac editing commands for NumpadEnter ( #1026 )
...
This should fix NumpadEnter on webkit for mac.
2020-02-14 18:37:02 -08:00
Joel Einbinder
21acb369db
fix(keyboard): correctly press enter on firefox ( #1023 )
2020-02-14 17:42:08 -08:00
Dmitry Gozman
dbb45d443a
Revert "feat(click): waitForInteractable option, defaults to true ( #934 )" ( #1013 )
...
Reason: new tests are flaky on all bots.
2020-02-14 13:05:23 -08:00
Dmitry Gozman
9413351d3f
feat(click): waitForInteractable option, defaults to true ( #934 )
2020-02-14 11:55:34 -08:00
Pavel Feldman
4d7e531520
fix(webkit): wait for the pipe ready on windows ( #997 )
2020-02-13 17:46:40 -08:00
Pavel Feldman
cd4e9da807
feat(coverage): export raw v8 coverage ( #976 )
...
Fixes #955
2020-02-13 17:39:14 -08:00
Dmitry Gozman
25022e4685
feat(api): introduce default timeouts on BrowserContext ( #992 )
2020-02-13 14:18:18 -08:00
Pavel Feldman
f7fb35bdbf
fix(windows): wait for pipe available again ( #993 )
2020-02-13 14:13:10 -08:00
Andrey Lushnikov
f8f818f676
Revert "Revert "feat: do not wait for first page in non-persistent mode ( #939 )""
...
Apparently a good fix is coming: https://github.com/microsoft/playwright/pull/993/
Pavel want to re-revert.
2020-02-13 13:54:01 -08:00
Andrey Lushnikov
71892b4aaa
Revert "feat: do not wait for first page in non-persistent mode ( #939 )"
...
This reverts commit a567123596 .
Reason for revert: WK-Win fails to start if we start talking over the
pipe too early.
2020-02-13 13:44:58 -08:00
Pavel Feldman
c15534ff01
fix(locale): document locale parameter ( #990 )
2020-02-13 13:37:59 -08:00
Dmitry Gozman
2e0d89e25c
fix(firefox): roll to 1029 and unskip passing tests ( #984 )
2020-02-13 13:19:25 -08:00
Pavel Feldman
8ed88c910a
feat(webkit): introduce BrowserContext({language}) ( #972 )
2020-02-13 12:24:17 -08:00
Andrey Lushnikov
8006b2c01f
fix(webkit): avoid UnhandledPromiseRejection ( #986 )
...
* fix(webkit): avoid UnhandledPromiseRejection
If we close a browser before sending first websocket message,
the `this._connect` promise will reject and will not be handled.
This surfaced at https://github.com/microsoft/playwright/pull/976/checks?check_run_id=444445350
* fix
2020-02-13 12:19:41 -08:00
Pavel Feldman
53fa62910a
fix(chromium): emit focus events in headful ( #982 )
...
Fixes #979
2020-02-13 11:29:13 -08:00
Dmitry Gozman
a567123596
feat: do not wait for first page in non-persistent mode ( #939 )
2020-02-13 10:51:17 -08:00
Joel Einbinder
d367a2ed3a
chore(tests): log protocol messages when a test fails on the bots ( #963 )
...
Similarly to how we handle stdio, this captures all protocol messages and logs them when a test fails. Great for when debugging tests in parallel or for bot failures!
Currently I made `DEBUGP=true` turn this on locally, and turned it on always for the CI. Open to
suggestions for a better environment variable. I would turn it on by default always, like the stdio logging, but it adds an enormous amount of noise to our error messages.
2020-02-12 22:35:06 -08:00
Andrey Lushnikov
d735de5347
feat: do not let users pass userDataDir to browserType.launch() ( #974 )
...
We now have a separate method for this - `browserType.launchPersistent`.
This will probably save our users quite some time.
2020-02-12 19:32:23 -08:00
Pavel Feldman
012bf671b8
feat(webkit): emulate timezone on webkit ( #968 )
2020-02-12 17:02:59 -08:00
Andrey Lushnikov
d26f47bb3b
fix(platform): properly handle websocket error events ( #967 )
2020-02-12 16:59:19 -08:00
Andrey Lushnikov
bfaf191c98
test: add missing tests ( #965 )
...
Chromium tests on Linux now call all our API methods and events at least once!
2020-02-12 16:13:48 -08:00
Andrey Lushnikov
7ce49c2835
chore: remove WebSocket implementation ( #961 )
...
WebSocket implementation currently is very incomplete, lacking
support in WebKit-Win and Firefox.
2020-02-12 15:29:06 -08:00
Andrey Lushnikov
b0c0598510
fix(api): small-case all api event names ( #959 )
2020-02-12 14:59:54 -08:00
Pavel Feldman
d05feec740
feat(active): emulate active state on webkit ( #941 )
2020-02-11 19:10:57 -08:00
Andrey Lushnikov
0d16d144b2
fix(firefox): rely on bundled firefox preferences ( #943 )
...
Since Firefox r1027 we bundle preferences alongside with build.
Fixes #857
2020-02-11 19:10:02 -08:00
Dmitry Gozman
da30847c83
feat(firefox): apply emulation to all pages in the browser context ( #931 )
2020-02-11 18:52:01 -08:00
Pavel Feldman
53237009ad
feat($wait): make $wait a shortcut for waitForSelector ( #932 )
2020-02-11 14:51:09 -08:00
Pavel Feldman
aae5fca237
feat(api): make browser.newPage own the created context ( #930 )
2020-02-11 12:06:58 -08:00
Andrey Lushnikov
ad9d6cc31f
feat: introduce browserType.downloadBrowserIfNeeded() ( #834 )
...
Fixes #823
2020-02-11 11:33:48 -08:00
Pavel Feldman
8a35f4023c
fix(events): deliver page.close upon disconnect in FF ( #929 )
2020-02-11 11:13:08 -08:00
Dmitry Gozman
c69dccf7c1
feat(click): use browser-provided scrollIntoViewIfNeeded ( #893 )
2020-02-11 10:30:09 -08:00
Pavel Feldman
72b9cf010e
feat(context): introduce BrowserContext close event ( #918 )
2020-02-11 10:27:19 -08:00
Pavel Feldman
780235479e
fix(firefox): bring headful window to front on launch ( #923 )
...
Fixes #914
2020-02-10 20:35:58 -08:00
Joel Einbinder
251ad38824
fix(navigations): remove LifecycleWatcher, fix flakes ( #882 )
2020-02-10 18:35:47 -08:00
Pavel Feldman
84f5700294
feat(api): rename browserContext() to context() in the apis, remove url from newPage ( #906 )
2020-02-10 10:41:45 -08:00
Pavel Feldman
4d84e35096
fix(upload): detect mime type from file extension ( #911 )
2020-02-10 10:08:51 -08:00
Pavel Feldman
79b7a8491e
fix(screenshot): be careful w/ default viewport, extract common logic ( #913 )
...
Fixes #887 .
2020-02-10 09:15:15 -08:00
Pavel Feldman
e9c14770d3
fix(webkit): fix remaining tests on windows ( #905 )
2020-02-07 17:39:32 -08:00
Joel Einbinder
73148fda79
chore(lint): add @typescript-eslint/no-unnecessary-type-assertion rule ( #898 )
2020-02-07 13:38:50 -08:00
Joel Einbinder
487d394f3b
chore(lint): add @typescript-eslint/type-annotation-spacing rule ( #897 )
2020-02-07 13:36:49 -08:00
Pavel Feldman
42c2cfc7cc
fix(pipe): sort out pipes on platforms ( #895 )
2020-02-07 11:48:55 -08:00
Pavel Feldman
0ed43e8781
feat(webkit) await the reading from pipe message ( #894 )
2020-02-07 10:52:59 -08:00
Dmitry Gozman
fee83b17c9
fix(api): page.viewport -> page.viewportSize ( #878 )
...
We now only allow to resize the page, leaving isMobile and deviceScaleFactor as browser context options.
2020-02-06 19:02:55 -08:00
Dmitry Gozman
c33a12d8f0
feat(firefox): ensure that new pages get browser context userAgent option ( #872 )
2020-02-06 19:01:03 -08:00
Joel Einbinder
126eb505e8
fix(transport): dispatch messages in separate tasks ( #841 )
...
Fixes a bug in our pipe, and the same one in the non-standard `ws` module. Our protocol messages are I/O events, and therefore they should each be executed in their own task.
2020-02-06 14:14:46 -08:00
Pavel Feldman
a547aa7984
feat(connect): allow multiple webkit connections over web socket ( #863 )
2020-02-06 12:41:43 -08:00
Andrey Lushnikov
a72784a677
fix(test): properly clean input field ( #860 )
2020-02-05 18:11:33 -08:00
Dmitry Gozman
6318ba6e4a
feat(frame): introduce frame.frameElement ( #856 )
...
Fixes #839 .
2020-02-05 17:20:23 -08:00
Joel Einbinder
4be39f8af0
chore(types): upgrade to typescript 3.7.5 ( #855 )
2020-02-05 16:53:36 -08:00
Pavel Feldman
55b6fe241e
feat(launch): introduce client, server & persistent launch modes (3) ( #854 )
2020-02-05 16:36:36 -08:00
Dmitry Gozman
28c4a1697c
fix(chromium): ensure we resume service worker before detaching from it ( #850 )
2020-02-05 16:08:28 -08:00
Pavel Feldman
a2ab645e63
feat(launch): introduce client, server & persistent launch modes (2) ( #840 )
2020-02-05 12:41:55 -08:00
Pavel Feldman
0518625dcc
feat(launch): introduce client, server & persistent launch modes (1) ( #838 )
2020-02-04 19:41:38 -08:00
Pavel Feldman
bdf8e39786
feat(goto): assume http:// for localhost navigations ( #825 )
2020-02-04 19:39:52 -08:00
Dmitry Gozman
8f1df5e1e8
fix(chromium): pause workers on start to not miss any events ( #832 )
2020-02-04 19:36:46 -08:00
Andrey Lushnikov
0c2a2e11fd
fix: properly nullify error stacks ( #836 )
...
`error.stack` is supposed to have error message as the first line.
2020-02-04 19:31:57 -08:00
Pavel Feldman
e3e2da3186
feat(check): introduce page.check/uncheck ( #826 )
2020-02-04 14:39:10 -08:00
Pavel Feldman
05d4746eb5
feat(selectors): temporarily remove zs engine ( #824 )
2020-02-03 16:14:37 -08:00
Pavel Feldman
1059e22f9e
fix(fill): make fill work for input[type=number] ( #819 )
2020-02-03 15:50:45 -08:00
Andrey Lushnikov
b82bc5fbd4
feat: treat selectors with leading '(//' as xpath ( #821 )
...
This starts treating the following selectors as xpath:
- `page.$('//div')`
- `page.$('(//div)[1]')`
- `page.$('((((//div))))[1]')`
(and generally, any number of leading openting parenthesis)
Fixes #817
2020-02-03 14:52:18 -08:00
Pavel Feldman
8028fb052a
feat(route): migrate from request interception w/ events to page.route ( #809 )
2020-02-03 14:23:24 -08:00
Yury Semikhatsky
25f2a32af3
feat: add Page.opener() to the API ( #790 )
...
Fixes #783
2020-01-31 18:38:45 -08:00
Andrey Lushnikov
1489fbdbff
fix: do not recommend yarn ( #794 )
...
There's some confusion around Yarn vs Yarn 2 and their interop, which
apparently causes some [installation issues](https://stackoverflow.com/questions/59918776/playwright-error-firefox-revision-is-not-downloaded-run-npm-install-or-yarn )
2020-01-31 17:23:39 -08:00
Yury Semikhatsky
b8199c0813
chore(webkit): use async/await to make eval more readable ( #789 )
2020-01-31 17:23:17 -08:00
Pavel Feldman
ef1d2fb995
Revert "fix: move offline/cache/interception switches to BrowserContext ( #748 )" ( #793 )
...
This reverts commit 6faf74bc95 .
2020-01-31 16:23:15 -08:00
Yury Semikhatsky
c57fd22382
fix(webkit): unflake Page.setContent ( #786 )
2020-01-31 10:08:45 -08:00
Pavel Feldman
b289bb790b
fix(filechooser): intercept file choosers lazily ( #776 )
...
Fixes #764
2020-01-30 17:43:06 -08:00
Yury Semikhatsky
985faebd12
fix: avoid unhandled promise rejection in WKSession.send ( #770 )
2020-01-30 17:30:47 -08:00
Yury Semikhatsky
1b012e50e9
fix: do actually catch worker initialization exceptions ( #762 )
2020-01-30 11:40:56 -08:00
Yury Semikhatsky
603b9f54dd
fix: make contentFrame cross-frame handles test pass ( #761 )
2020-01-30 11:04:09 -08:00
Pavel Feldman
f44d6607c3
feat(webkit): use consistent user agent for headful and headless ( #756 )
2020-01-29 20:12:09 -08:00
Pavel Feldman
ce7219870b
feat(webkit): roll webkit to 1124 ( #736 )
2020-01-29 19:13:44 -08:00
Dmitry Gozman
0e6b44d337
feat(selectors): selectors.register accepts function ( #753 )
2020-01-29 15:13:43 -08:00
Yury Semikhatsky
6faf74bc95
fix: move offline/cache/interception switches to BrowserContext ( #748 )
2020-01-29 12:51:14 -08:00
tsuemura
fc93b886d9
fix: typo ( #740 )
2020-01-29 09:40:13 -08:00
Andrey Lushnikov
ce7c8d74b5
feat: introduce BrowserType.name() ( #732 )
...
This helps a lot to produce nice logging:
```js
const { chromium, webkit } = require('playwright');
(async () => {
for (const launcher of [chromium, webkit]) {
console.log(`Testing on ${launcher.name()}`);
const browser = await launcher.launch();
// ...
await browser.close();
}
})();
```
2020-01-28 18:09:07 -08:00
Yury Semikhatsky
4c25180912
chore(webkit): do not call setPauseOnStart for each target ( #725 )
2020-01-28 14:51:05 -08:00
Pavel Feldman
09e97afd22
feat(wk,ff): amend method & postData upon continue ( #703 )
...
Fixes #668
2020-01-28 14:29:46 -08:00
Yury Semikhatsky
460527d8cb
fix(webkit): do not poll readyState if target is paused before first navigation ( #721 )
2020-01-28 14:00:36 -08:00
Dmitry Gozman
c04ad140f3
feat(launcher): gracefully close browser on sigint ( #650 )
2020-01-28 13:07:53 -08:00
Dmitry Gozman
324874962c
fix(webkit): make frames detect their initial load state ( #690 )
2020-01-28 13:05:38 -08:00