Dmitry Gozman
4bf5742d47
fix(chromium): abort fetch requests that lack networkId ( #2254 )
...
These requests are usually internal ones, and we can safely abort them.
An example would be DevTools loading cached resources to show the content.
There will never be a matching Network.requestWillBeSent event, so we do not
report them to the user.
2020-05-15 15:22:29 -07:00
Pavel Feldman
99b7aaace8
chore: refactor injected script harness ( #2259 )
2020-05-15 15:21:49 -07:00
Dmitry Gozman
650d73445c
fix(actions): do not wait for the created popups ( #2219 )
...
Since we are recommending Promise.all pattern anyway, this special
logic just adds to the possibility of timeout if something goes wrong.
For example, Firefox sometimes send Page.willOpenNewWindowAsynchronously
later than the new target arrives and input action just hangs.
2020-05-13 17:20:33 -07:00
Pavel Feldman
8e59031078
chore: introduce debugAssert ( #2160 )
2020-05-08 10:37:54 -07:00
Pavel Feldman
1c17929bd8
chore: add input logging and timeout debugging hints ( #2109 )
2020-05-04 21:44:33 -07:00
Pavel Feldman
bcce48362a
api(waitForSelector): make "state: visible" default, includes rename to state ( #2091 )
2020-05-04 11:03:44 -07:00
Dmitry Gozman
953dd36d38
feat(api): remove 'mutation' polling option ( #2048 )
...
It is not compatible with shadow dom.
2020-04-29 21:34:14 -07:00
Yury Semikhatsky
5993a6a0e0
fix: throw from eval methods if >1 argument is passed ( #2043 )
2020-04-29 18:35:04 -07:00
Pavel Feldman
7f8aa703dd
api(waitFor): remove waitFor, use specialized wait functions ( #1995 )
2020-04-27 12:08:29 -07:00
Pavel Feldman
c1c0237d4e
api(dispatchEvent): page, frame and handle versions added ( #1932 )
2020-04-23 14:58:37 -07:00
Yury Semikhatsky
00e8d88777
fix: do not auto wait for downloads ( #1921 )
2020-04-22 15:08:39 -07:00
Pavel Feldman
6ecac8c164
chore: restore networkidle0 alias ( #1920 )
2020-04-22 10:52:01 -07:00
Pavel Feldman
0656771167
api(networkidle): remove networkidle2 ( #1883 )
2020-04-20 16:52:26 -07:00
Pavel Feldman
1f43ae692f
feat(logging): introduce logger sink api ( #1861 )
2020-04-20 07:52:26 -07:00
Dmitry Gozman
55b4bc99bd
feat(actions): requery the element when it was detached during the action ( #1853 )
2020-04-18 18:29:31 -07:00
Yury Semikhatsky
2b96b85e05
fix(firefox): throw error when added script blocked by CSP ( #1841 )
2020-04-17 08:51:54 -07:00
Pavel Feldman
a248430af8
reapply api(waitUntil): remove waitUntil options from the actions ( #1842 )
2020-04-16 20:31:04 -07:00
Andrey Lushnikov
31460b18b8
Revert "api(waitUntil): remove waitUntil options from the actions ( #1834 )" ( #1840 )
...
This reverts commit d0b8710670 .
Reason: multiple test failures on all Linux bots
- https://app.circleci.com/pipelines/github/microsoft/playwright/613/workflows/50dc6e2d-23b0-41d2-9765-42983b0ed91d/jobs/610
- https://travis-ci.com/github/microsoft/playwright/builds/160648417
- https://github.com/microsoft/playwright/pull/1839/checks?check_run_id=594015893
2020-04-16 18:46:10 -07:00
Pavel Feldman
d0b8710670
api(waitUntil): remove waitUntil options from the actions ( #1834 )
2020-04-16 16:04:10 -07:00
Dmitry Gozman
f5942295d4
feat(api): wait for popups and downloads when performing actions ( #1744 )
2020-04-16 13:09:24 -07:00
Pavel Feldman
2280126344
api(setInputFiles): introduce page/frame helpers, document, break compat ( #1818 )
2020-04-16 10:25:28 -07:00
Pavel Feldman
9d05038a82
feat(hints): hint at how waitFor(time) is bad for production ( #1781 )
2020-04-14 15:00:10 -07:00
Joel Einbinder
a7572c7f09
feat: nicer error message for page.addScriptTag ( #1754 )
2020-04-12 18:46:53 -07:00
Pavel Feldman
3584205086
fix(chromium): associate navigation requests with navigations ( #1724 )
2020-04-09 19:03:06 -07:00
Pavel Feldman
c6f580faf8
chore: migrate from timeouts to deadlines internally ( #1695 )
2020-04-07 14:35:34 -07:00
Dmitry Gozman
aeeac55732
feat(chromium): support oopifs ( #1664 )
...
Splits CRPage into CRPage and FrameSession, carefully broadcasting or picking the right session for each operation.
2020-04-06 15:09:43 -07:00
Pavel Feldman
e241c1bef8
chore: remove web mode ( #1625 )
2020-04-01 14:42:47 -07:00
Dmitry Gozman
60942d0af5
chore(selectors): move selectors logic to selectors.ts ( #1536 )
...
This encapsulates selectors logic in one place, in a preparation for more complex scenarios like main-world selectors or piercing frames.
Note: we had `Page.fill should wait for visible visibilty` test, but we do not actually wait for visible in page.fill(). It happened to pass due to lucky evaluation order.
References #1316 .
2020-03-25 14:08:46 -07:00
Dmitry Gozman
de0a2d1081
api(waitForLoadState): move waitUntil to be a first parameter ( #1490 )
2020-03-23 13:51:11 -07:00
Dmitry Gozman
670ce7a591
chore: remove various watchers, use FrameTask directly ( #1460 )
2020-03-21 13:02:37 -07:00
Dmitry Gozman
16c7a5bd5c
api(eval): accept zero or one arguments in all evaluation functions ( #1431 )
2020-03-20 15:08:17 -07:00
Pavel Feldman
2af07ce475
chore: rework disposers into a frame task ( #1413 )
2020-03-18 20:05:35 -07:00
Pavel Feldman
64b175ce10
api(waitForLoadState): restore it ( #1390 )
2020-03-16 14:39:44 -07:00
Dmitry Gozman
6731d37546
api(network): replace redirectChain with redirectedFrom/redirectedTo ( #1401 )
2020-03-16 13:31:06 -07:00
Dmitry Gozman
26479119b6
fix(setContent): handle inner _waitForLoadState rejection ( #1382 )
2020-03-13 13:09:06 -07:00
Pavel Feldman
b1a3b23c38
api(request): make request.response a promise ( #1377 )
2020-03-13 08:54:19 -07:00
Pavel Feldman
24d4fb1e5c
api(click): remove tripleclick, respect clickCount ( #1373 )
2020-03-13 08:09:48 -07:00
Pavel Feldman
8c532bd8da
api(press): remove text option ( #1372 )
...
#1348
2020-03-12 22:02:19 -07:00
Pavel Feldman
e1d3196460
api(*.selectOption): renamed from *.select ( #1371 )
2020-03-12 21:30:12 -07:00
Dmitry Gozman
e382bb329b
api: remove 'commit' phase, actions to wait until 'domcontentloaded' by default ( #1358 )
2020-03-12 11:20:03 -07:00
Dmitry Gozman
c1ef683373
api: remove waitForLoadState() in favor of PageEvent.page(options) ( #1323 )
2020-03-11 14:46:52 -07:00
Dmitry Gozman
23cf3be828
api: make request.frame() non-null ( #1319 )
2020-03-10 11:39:35 -07:00
Pavel Feldman
78bd29d558
fix(click): work around input alignment on chromium ( #1282 )
2020-03-07 08:19:31 -08:00
Pavel Feldman
3c35d7b058
api(waitFor): click(waitFor) -> click(force) ( #1275 )
2020-03-06 16:24:21 -08:00
Pavel Feldman
3fa000f5f4
api(waitForSelector): bring it back ( #1272 )
2020-03-06 15:02:42 -08:00
Pavel Feldman
119df5a985
feat(nowait): allow waitUntil:nowait for actions ( #1264 )
2020-03-06 14:32:15 -08:00
Pavel Feldman
49c1161e00
api(press): bump .press to the page/frame level ( #1262 )
2020-03-06 09:38:08 -08:00
Pavel Feldman
2724157c22
feat(waitUntil): allow waiting for navigation from clicks, etc ( #1255 )
2020-03-06 08:24:32 -08:00
Dmitry Gozman
1d770af804
api: waitForElement accepts waitFor: attached|detached|visible|hidden ( #1244 )
...
This includes rename waitForSelector -> waitForElement and removes $wait.
2020-03-05 17:45:41 -08:00
Pavel Feldman
c734b4b715
feat(click): start wire auto-waiting click in firefox ( #1233 )
2020-03-05 14:47:04 -08:00
Pavel Feldman
11f68bac54
feat(cr, wk): make clicks, input and evaluate await scheduled navigations ( #1200 )
2020-03-04 19:15:01 -08:00
Dmitry Gozman
3bedc60b2b
fix(dispose): do not await inner handle dispose ( #1230 )
2020-03-04 17:57:35 -08:00
Joel Einbinder
fcfe887c57
feat(select): don't accept undefined as a value ( #1202 )
...
`page.select` accepting an `undefined` value is a legacy of when `page.select` took `...values`. This matches the way the method is documented in the API.
2020-03-03 16:59:41 -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
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
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
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
8ed88c910a
feat(webkit): introduce BrowserContext({language}) ( #972 )
2020-02-13 12:24:17 -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
Pavel Feldman
53237009ad
feat($wait): make $wait a shortcut for waitForSelector ( #932 )
2020-02-11 14:51:09 -08:00
Joel Einbinder
251ad38824
fix(navigations): remove LifecycleWatcher, fix flakes ( #882 )
2020-02-10 18:35:47 -08:00
Joel Einbinder
73148fda79
chore(lint): add @typescript-eslint/no-unnecessary-type-assertion rule ( #898 )
2020-02-07 13:38:50 -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
bdf8e39786
feat(goto): assume http:// for localhost navigations ( #825 )
2020-02-04 19:39:52 -08:00
Pavel Feldman
e3e2da3186
feat(check): introduce page.check/uncheck ( #826 )
2020-02-04 14:39:10 -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
Dmitry Gozman
89b5d2f7be
fix(setContent): manually reset lifecycyle for all browsers at the right moment ( #679 )
2020-01-27 16:51:52 -08:00
Pavel Feldman
80c3b46a54
feat(websockets): implement support for ws on cr/wk ( #542 )
2020-01-21 11:48:48 -08:00
Dmitry Gozman
894e91bb68
fix(api): remove $x form the api, $$ works equally good ( #544 )
2020-01-20 11:30:22 -08:00
Dmitry Gozman
bb3f12245c
feat(network): ignore favicon requests - these are too unpredictable ( #533 )
2020-01-17 17:14:39 -08:00
Dmitry Gozman
734c752fea
chore: rework log api calls functionality to not replace objects ( #518 )
2020-01-16 17:48:38 -08:00
Dmitry Gozman
f3c53923ab
fix(types): proper types for $wait ( #514 )
2020-01-16 17:03:32 -08:00
Yury Semikhatsky
5fa39dde3f
fix(webkit): use cross-process loader ids ( #486 )
2020-01-14 11:46:08 -08:00
Yury Semikhatsky
ff904d3a61
Revert "fix(webkit): use cross-process loader ids ( #484 )" ( #485 )
...
This reverts commit d341b43023 .
2020-01-14 09:49:49 -08:00
Yury Semikhatsky
d341b43023
fix(webkit): use cross-process loader ids ( #484 )
2020-01-14 09:48:36 -08:00
Dmitry Gozman
a1d1f26fb7
chore: more strict type checking ( #466 )
2020-01-13 13:33:25 -08:00
Pavel Feldman
a8b9920a14
feat(logging): log the API calls ( #464 )
2020-01-13 09:14:28 -08:00
Dmitry Gozman
67e4214146
feat(navigation): early return when navigation was canceled by another one ( #459 )
...
Also added related interception tests.
2020-01-10 17:33:07 -08:00
Yury Semikhatsky
b6f1b17906
fix(webkit): do not fire FrameNavigated when receive resource tree ( #432 )
2020-01-08 15:32:13 -08:00
Dmitry Gozman
9c966c8b19
feat(pw-web): introduce platform.ts to absract between node and browser platforms ( #392 )
2020-01-07 11:55:24 -08:00
Dmitry Gozman
32edca7395
fix(networkidle): ignore favicons and keep track of requests ( #368 )
...
This counters Firefox not cancelling existing requests on navigation.
2020-01-03 12:59:27 -08:00
Dmitry Gozman
f1d6fe6bd8
chore: remove non-input related stuff from input ( #369 )
2020-01-03 12:59:06 -08:00
Pavel Feldman
8f480a3987
docs: more docs update ( #327 )
2019-12-20 16:57:21 -08:00
Dmitry Gozman
735d3eeed7
feat(navigation): introduce waitForNavigationIfNeeded ( #310 )
...
This one waits for current navigation to finish, matching by url if asked.
If there is no current navigation or current navigation/url does not match,
it waits for the next matching one.
2019-12-20 15:32:30 -08:00
Dmitry Gozman
92ef4c173e
fix: async stacks should work now ( #325 )
2019-12-20 15:31:20 -08:00
Dmitry Gozman
56a48559c2
fix(setContent): call window.stop() before setting new content ( #323 )
...
This ensures that previous loading activity is suppressed and all network requests are canceled.
2019-12-20 15:30:12 -08:00
Pavel
2673ea90d9
doc: more documentation fixes
2019-12-20 15:26:18 -08:00
Pavel Feldman
9cfa404c87
feat: trim down url matching ( #322 )
2019-12-20 14:38:54 -08:00
Dmitry Gozman
7e90292834
fix(networkidle): make it (almost) work with setContent ( #307 )
2019-12-19 15:07:57 -08:00
Dmitry Gozman
b378bc7f6c
feature(evaluate): support cross-context element handles ( #295 )
2019-12-19 11:44:07 -08:00
Dmitry Gozman
c172a7e7e0
feature: $wait similar to waitForFunction, but taking a selector ( #303 )
2019-12-18 18:11:02 -08:00
Dmitry Gozman
3669dad243
feat(urlmatch): support url matching in waitForNavigation ( #300 )
2019-12-18 18:03:02 -08:00
Dmitry Gozman
9afd35d3a1
feature(waitfor): waitFor visible or any by default ( #284 )
2019-12-18 14:28:16 -08:00
Dmitry Gozman
7750db97fe
api: remove ExecutionContext from api ( #290 )
...
In the current state, it is superseeded by Frame and JSHandle.
2019-12-18 13:51:45 -08:00
Dmitry Gozman
fd927000ea
feature: update api around selectors ( #280 )
...
- Selector is again a string.
- Most methods taking selector also accept waitFor option.
- Available waitFor options are: 'visible', 'hidden', 'any' === true, false === undefined.
- waitForXPath is removed.
- waitForSelector is replaced by $(selector, { waitFor: true }).
2019-12-17 14:30:02 -08:00
Dmitry Gozman
916158656c
chore: unify reload/goBack/goForward across browsers ( #273 )
2019-12-17 11:28:09 -08:00
Dmitry Gozman
5a60a96410
chore: reuse navigation methods between browsers ( #271 )
2019-12-16 22:02:33 -08:00