Andrey Lushnikov
23dfaf9e9b
feat: start downloading firefox-stable channel ( #6177 )
...
This patch adds support for downloading and running Playwright with
firefox-stable channel.
References #5993
2021-04-19 21:26:33 -07:00
Pavel Feldman
90913160c4
chore: render wait for on trace timeline ( #6222 )
2021-04-18 20:02:34 -07:00
Dmitry Gozman
e81a3c5901
api: add option position
to check/uncheck ( #6153 )
...
Since check/uncheck does click under the hood, sometimes it might
need to click at a different position. One example would be a long
label that contains links inside, and clicking in the center happens
to hit the link instead of the label itself.
2021-04-12 12:41:25 -07:00
Yury Semikhatsky
f6606d505b
fix: finish all artifacts when browser exits ( #6151 )
2021-04-08 18:56:09 -07:00
Joel Einbinder
63d0d466e3
feat(cdp): replace wsEndpoint with protocol neutral endpointURL ( #6141 )
2021-04-08 14:55:28 -07:00
Yury Semikhatsky
561cb23e8d
fix: dispatch popup event on the client end ( #6044 )
2021-04-02 11:15:07 -07:00
Pavel Feldman
a7630c91d5
api: remove Chromium* classes ( #6040 )
2021-04-01 18:47:14 -07:00
Dmitry Gozman
9d9599c6a6
api(video): implement video.saveAs and video.delete ( #6005 )
...
These methods are safe to call while the page is still open, or when it is
already closed. Works in remotely connected browser as well.
Also makes video.path() to throw for remotely connected browser.
Under the hood migrated Download and Video to use the common Artifact object.
2021-03-31 10:38:05 -07:00
Pavel Feldman
f1c0d09765
feat(size): emulate window.screen size ( #5967 )
2021-03-29 14:10:58 -07:00
Dmitry Gozman
2cf4caa4cf
chore: implement mixins in protocol.yml ( #5932 )
2021-03-24 06:37:10 -07:00
Pavel Feldman
543582b4ca
chore: expose channel name literals for types ( #5922 )
2021-03-23 13:21:03 -07:00
Pavel Feldman
1dd6bd3316
infra(channel): wire release channel to all tests ( #5820 )
2021-03-15 08:07:57 -07:00
Pavel Feldman
a96d6a7dbb
feat: allow to pick stable channel ( #5817 )
2021-03-13 14:02:39 -08:00
Pavel Feldman
600f731a67
feat(inspector): render api names from metainfo ( #5530 )
2021-02-19 18:12:33 -08:00
Pavel Feldman
bb2b29631a
feat(inspector): pause on page/context close ( #5319 )
2021-02-19 09:33:24 -08:00
Pavel Feldman
ae2ffb3fb9
feat(inspector): instrument wait for event ( #5457 )
2021-02-13 20:31:06 -08:00
Pavel Feldman
449adfd3ae
chore(recorder): move recording output into the gui app ( #5425 )
2021-02-11 17:46:54 -08:00
Dmitry Gozman
99f8e1cf63
docs: document Android and friends ( #5415 )
...
These are experimental, currently available through `_android`.
2021-02-11 10:31:57 -08:00
Pavel Feldman
a06cf70d28
chore: pass parsed stack in metainfo ( #5407 )
2021-02-10 18:52:28 -08:00
Joel Einbinder
dca70abbd3
feat(chromium): connect to a browser over cdp ( #5207 )
2021-02-10 14:00:02 -08:00
Pavel Feldman
34adc28ed3
feat(pause): make page.pause public ( #5288 )
2021-02-03 16:01:51 -08:00
Pavel Feldman
3d253c4e5c
feat: auto-detect expression/function in js server ( #5284 )
2021-02-03 13:49:25 -08:00
Pavel Feldman
8a8d8ea370
fix: update terminal size dynamically ( #5250 )
2021-02-02 14:25:51 -08:00
Pavel Feldman
1db5ef24a8
docs: document electron api ( #5229 )
2021-02-01 11:43:26 -08:00
Dominik Deren
f8fbfe28fa
feat(trace viewer): Adds _debugName BrowserContextOption to let users define a name for their contexts ( #5205 )
...
This change is adding a new property on the BrowserContextOptions class called `_debugName`. This property allows defining a user-friendly name for the browser context, and currently it is being used in one place, the Trace Viewer. When user provides the new value in the following way:
```typescript
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext({ _traceDir: __dirname, _debugName: 'My custom testcase name' });
await context.close();
await browser.close();
})();
```
The `_debugName` will be saved in the `*.trace` file for this browser context, on the `context-created` event, under the key `debugName`.
Later, when such a trace is displayed using Trace Viewer, the `debugName` will be displayed in the dropdown in the top right part of the app instead of the actual trace filename.
Fixes #5157 .
2021-01-28 10:50:57 -08:00
Pavel Feldman
01d6f83597
chore: introduce debug toolbar ( #5145 )
2021-01-25 14:49:26 -08:00
Pavel Feldman
464fdc1800
chore: make recorder a supplement ( #5131 )
2021-01-24 19:21:19 -08:00
Pavel Feldman
be9bef513e
chore: move recorder to server side ( #5128 )
2021-01-24 08:44:11 -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
Pavel Feldman
4b5c876bbf
chore: allow opening empty trace viewer ( #5080 )
2021-01-20 19:16:23 -08:00
Dmitry Gozman
e3ebba5573
chore: cleanup code that is not used by cli anymore ( #5005 )
2021-01-13 17:02:53 -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
Dmitry Gozman
225e65e076
feat(cli): share console api between cli and debug mode ( #4807 )
2020-12-23 14:15:16 -08:00
Pavel Feldman
774eb53980
fix(adb): force page scale factor update on connection ( #4755 )
2020-12-17 18:28:49 -08:00
Pavel Feldman
4799e8f20b
feat(adb): add screenshot ( #4701 )
2020-12-13 23:20:13 -08:00
Pavel Feldman
f89dcc7ba7
feat(adb): implement push ( #4697 )
2020-12-13 22:00:37 -08:00
Pavel Feldman
7c89ec051a
feat(adb): expose a11y tree ( #4694 )
2020-12-13 08:14:32 -08:00
Max Schmitt
1b7fb7d56a
feat(android): expose installAPK(path) and ADB socket ( #4689 )
2020-12-12 09:36:38 -08:00
Pavel Feldman
8fc49c98fa
feat(adb): support webviews ( #4657 )
2020-12-09 17:15:24 -08:00
Pavel Feldman
aacd8e633c
chore: expose adb devices and actions ( #4647 )
2020-12-09 15:06:57 -08:00
Dmitry Gozman
3121de403b
test: remove tests for SelectorEngine.create ( #4580 )
...
We are not going to keep this functionality on arbitrary engines.
2020-12-03 14:10:26 -08:00
Yury Semikhatsky
dfe3552b59
feat(route): support URL overrides in continue ( #4438 )
2020-11-16 09:59:00 -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
Dmitry Gozman
d57b43963c
fix(har): support har in persistent context ( #4322 )
2020-11-03 11:30:59 -08:00
Dmitry Gozman
1c39689dd6
api(videos): introduce a single recordVideo option bag ( #4309 )
...
api(videos): introduce a single recordVideo option bag
Currently contains `dir` and `size`, previously known as
`videosPath` and `videoSize`.
2020-11-02 19:42:05 -08:00
Pavel Feldman
914f6372ec
feat(proxy): enable per-context http proxy ( #4280 )
2020-10-29 16:12:30 -07:00
Pavel Feldman
ece84eccd7
fix(protocol): annotate file buffer as binary ( #4272 )
2020-10-28 10:55:20 -07:00