Pavel Feldman
e6bf0a07fe
feat(force): add fill, selectOption, selectText ({force}) ( #7286 )
2021-06-24 08:18:09 -07:00
Pavel Feldman
5732307280
feat(inputValue): implement *.inputValue() ( #7285 )
2021-06-23 22:19:20 -07:00
Joel Einbinder
8960584b78
fix(chromium): drag and drop works in chromium ( #6207 )
...
Waiting for #6203 to percolate to the cdn. But this all works locally.
Fixes #1094
2021-06-07 10:27:34 -07:00
Dmitry Gozman
837ee08a53
fix(waitForSelector): retry when context is gone during node adoption ( #6851 )
...
There is a small window after finishing the "rerunnable task" where
we adopt the node to the main world and navigation could destroy the context.
2021-06-02 20:17:24 -07:00
Yury Semikhatsky
475a417dfc
fix: compute payload mime type on server ( #6647 )
2021-05-18 18:30:20 -07:00
Yury Semikhatsky
345f7da573
fix(codegen): move injected recorder scripts to utility world ( #6187 )
2021-05-18 09:40:24 -07:00
Dmitry Gozman
fbae295ce2
fix(har): save popup's main request/response ( #6562 )
...
This migrates server side code from networks events on the Page
to network events on the BrowserContext.
2021-05-13 15:02:10 -07:00
Vignesh Shanmugam
4b3e5e5c17
feat(network): expose network events via browser context ( #6370 )
...
- fix #6340
- Exposes all the network related events (request, response, requestfailed, requestfinished) through the browser context to allow for managing network activity even if the is any navigations through popups or to new tabs which could result in creation of multiple page objects.
2021-05-13 10:29:14 -07:00
Dmitry Gozman
263a0fd2e1
fix: evaluate in utility for screenshots ( #6364 )
...
We use `waitForFunctionValue` in the main world that may be corrupted.
References #6356 .
2021-04-29 14:53:53 -07:00
Pavel Feldman
434f474ce8
chore(evaluate): implement non-stalling evaluate ( #6354 )
2021-04-29 09:28:19 -07:00
Pavel Feldman
922d9ce1fb
chore(tracing): fix some of the start/stop scenarios ( #6337 )
2021-04-27 11:07:07 -07:00
Pavel Feldman
0ed328f6de
chore(tracing): include events in the trace ( #6285 )
2021-04-23 09:28:18 -07:00
Pavel Feldman
85e2db2416
chore: push dispatcher guid into object, reuse it in trace ( #6250 )
2021-04-20 23:03:56 -07:00
Pavel Feldman
0dfde2e975
fix(screenshot): never throw page is navigating ( #6103 )
2021-04-06 16:01:38 -07:00
Pavel Feldman
84efdfcbc9
chore(autowait): auto-wait for top level navigations only ( #5861 )
2021-03-17 14:47:51 -07:00
Pavel Feldman
5ae731a3fb
chore(evaluate): respect signals when evaluating on handle ( #5847 )
2021-03-17 12:03:21 -07:00
Pavel Feldman
7011e5737a
chore(evaluate): explicitly annotate methods that wait for signals ( #5859 )
2021-03-17 10:47:07 -07:00
Pavel Feldman
1a94ea5f6c
chore: refactor trace viewer to reuse snapshot storage ( #5756 )
2021-03-08 19:49:57 -08:00
Pavel Feldman
b253ee80c0
chore(snapshot): brush up, start adding tests ( #5646 )
2021-03-01 12:20:04 -08:00
Pavel Feldman
992f808210
chore(snapshot): implement in-memory snapshot ( #5624 )
2021-02-25 13:09:26 -08:00
Dmitry Gozman
f7e5db4d6e
chore: remove ProgressController.abort ( #5620 )
...
It is used in a few places, but we can do a Promise.race.
This change will allow us to pass existing progress to
multi-step operations.
2021-02-25 10:00:54 -08:00
Pavel Feldman
f72b098a04
chore: encapsulate parsed snapshot id in the trace viewer ( #5607 )
2021-02-24 19:29:16 -08:00
Pavel Feldman
6576bd8b31
chore: move before/after action instrumentation into dispatcher ( #5416 )
2021-02-10 21:55:46 -08:00
Dmitry Gozman
b4b14eab69
chore: refactor actionability checks ( #5368 )
2021-02-10 12:36:26 -08:00
Dmitry Gozman
78ab2955f3
fix(isVisible): do not wait for the selector to be resolved ( #5393 )
2021-02-10 07:12:43 -08:00
Pavel Feldman
2e01fbdbec
chore: introduce instrumentation api ( #5385 )
2021-02-09 14:44:48 -08:00
Pavel Feldman
0652f3251f
chore: introduce sdk object base class ( #5370 )
2021-02-09 09:00:00 -08:00
Pavel Feldman
c2b8718bae
fix(waitForFunction): process isFunction auto-detection ( #5312 )
2021-02-04 08:45:59 -08:00
Pavel Feldman
3d253c4e5c
feat: auto-detect expression/function in js server ( #5284 )
2021-02-03 13:49:25 -08:00
Dmitry Gozman
5033261d27
feat(trace): streaming snapshots ( #5133 )
...
- Instead of capturing snapshots on demand, we now stream them
from each frame every 100ms.
- Certain actions can also force snapshots at particular moment using
"checkpoints".
- Trace viewer is able to show the page snapshot at a particular
timestamp, or using a "checkpoint" snapshot.
- Small optimization to not process stylesheets if CSSOM was not used.
There still is a lot of room for improvement.
2021-01-25 18:44:46 -08:00
Pavel Feldman
01d6f83597
chore: introduce debug toolbar ( #5145 )
2021-01-25 14:49:26 -08:00
Joel Einbinder
3e4e511d84
feat(pause): page._pause to wait for user to click resume ( #5050 )
2021-01-22 18:47:02 -08:00
Dmitry Gozman
5c3f483659
fix(cli): do not extend injected script on same-document navigations ( #5002 )
...
Otherwise, the injected script has to be ready for reentrancy.
2021-01-13 14:25:42 -08:00
Dmitry Gozman
5a2cfdbd47
api: add isChecked method ( #4953 )
...
This adds `{Page,Frame}.isChecked(selector)` and `ElementHandle.isChecked()` methods.
Useful to do assertions in tests:
```js
await page.click('text="Add TODO"');
expect(await page.isChecked('.item-done')).toBe(false);
```
2021-01-08 17:36:17 -08:00
Dmitry Gozman
3f904056ee
api: add isVisible, isHidden, isEnabled, isDisabled and isEditable ( #4915 )
...
These methods are useful for verification in tests, e.g.
```js
expect(await page.isEnabled(':text("Remove All")')).toBe(false);
await page.click(':text("Add Item")');
expect(await page.isVisible('.item:text("new item")')).toBe(true);
expect(await page.isEnabled(':text("Remove All")')).toBe(true);
```
2021-01-08 12:27:54 -08:00
Yury Semikhatsky
0b8f34e726
docs: rename aggregate parameter objects to params ( #4715 )
2020-12-14 15:27:02 -08:00
Dmitry Gozman
5e6eed0d87
fix(frames): do not start network idle timer after detach ( #4502 )
...
This fixes a common flaky error on the bots:
```
Error: Cannot find object to emit "loadstate": Frame@f5b80c8c318c5471a1e6af552866e981
```
2020-11-19 19:20:53 -08:00
Pavel Feldman
d20e56e197
feat(state): allow getting / setting context state ( #4412 )
2020-11-13 14:24:53 -08:00
Dmitry Gozman
e69315f711
fix(websocket): remove "skip frames" logic ( #4435 )
...
This optimization turned out to be racy, so better remove it for now.
2020-11-13 14:03:21 -08:00
Dmitry Gozman
c83ac444b4
api(websocket): do not send websocket frames without a listener ( #4361 )
...
Once user adds 'websocket' listener, we start sending the frames
for all websockets on the page.
2020-11-06 12:30:16 -08:00
Pavel Feldman
ac8ab1e1b5
feat(websocket): add WebSocket.waitForEvent and isClosed ( #4301 )
2020-11-02 14:09:58 -08:00
Pavel Feldman
d117d0bb93
feat(scopes): make page a scope ( #4300 )
2020-11-02 13:06:54 -08:00
Pavel Feldman
be8428475d
feat(websocket): implement Web Sockets for Chromium & WebKit ( #4234 )
2020-10-26 22:20:43 -07:00
Joel Einbinder
92dda698f8
feat: tap ( #4097 )
2020-10-19 10:07:33 -07:00
Dmitry Gozman
01a4060665
chore: move action instrumentation per-context ( #3908 )
...
This allows tracing to expose plugin-like api.
This also remove Progress -> ActionMetadata dependency, leaving
Progress a low-level utility.
2020-09-17 09:32:54 -07:00
Dmitry Gozman
dc06f0a75c
chore: introduce evaluateInUtility private api ( #3907 )
...
This is an experimental client-side api. We'll experiment with it in plugins like tracing.
2020-09-16 16:07:49 -07:00
Dmitry Gozman
592bae1cea
feat(trace): record goto, setContent, goBack, goForward and reload ( #3883 )
2020-09-15 09:46:36 -07:00
Dmitry Gozman
2f0d2029ca
chore: refactor goBack/goForward/reload ( #3859 )
...
These methods are the only users of waitForNavigation and
waitForLoadState on the server side. This refactor lifts the
Progress wrapper to the top-most goBack/goForward/reload call
and leaves waitForNavigation/waitForLoadState as internal helpers.
This way we get a single Progress for the actual api call.
2020-09-14 16:43:17 -07:00
Dmitry Gozman
0a243c6792
fix(waitTask): remove rerunnable tasks from the context data upon success/failure ( #3875 )
2020-09-14 14:55:37 -07:00
Dmitry Gozman
01198f8eef
fix($$): use utility context when possible ( #3870 )
...
This avoids the typical issue of overridden bulitins,
trading it for performance of one by one node adoptions.
2020-09-14 10:38:14 -07:00