1335 Commits

Author SHA1 Message Date
Dmitry Gozman
321a873d8a
fix(codegen): add timeout to our actions, catch errors (#5188) 2021-01-27 15:57:28 -08:00
Pavel Feldman
ff6b2b1dd4
chore: make emulate media params be options (#5172) 2021-01-27 14:19:37 -08:00
Dmitry Gozman
527286683f
feat(codegen): prefer frame name over url when unique (#5175) 2021-01-27 13:19:36 -08:00
Dmitry Gozman
0108d2d41f
feat(snapshots): various improvements (#5152)
- Adopt "declarative shadow dom" format for shadow dom snapshots.
- Restore scroll positions.
- Render snapshot at arbitrary timestamp.
2021-01-26 15:09:17 -08:00
Dominik Deren
a3af0829ff
feat(trace viewer): Extending existing NetworkTab view (#5009)
feat(trace viewer): Extending existing NetworkTab view

Currently the network tab contains a limited amount of information on the resources that were loaded in the browser. This change proposes extending the details displayed for each resource, to include:

- HTTP method,
- Full url,
- Easily visible response content type,
- Request headers,
- Request & response bodies.

Such level of information could help quickly understand what happened in the application, when it was communicating with backend services. This can help debug tests quicker to figure out why they are failing.

This implementation still needs some clean up & tests improvement, but I wanted to propose such changes and gather your feedback before going too far.
2021-01-26 11:06:05 -08:00
Yury Semikhatsky
f3cc4dfe6d
feat(webkit): bump to 1428 (#5140) 2021-01-26 09:42:06 -08:00
Pavel Feldman
45f7d73470
chore: plumb terminal size and port language (#5149) 2021-01-25 19:01:04 -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
87a3ccc49e
fix: do not return cookies with empty values (#5147) 2021-01-25 16:37:33 -08:00
Pavel Feldman
2e290be40b
chore: remove source maps in pwdebug mode (#5148) 2021-01-25 16:36:57 -08:00
Pavel Feldman
fdde9493ea
fix: don't parse potentially invalid urls in event handlers (#5090) 2021-01-25 14:49:51 -08:00
Pavel Feldman
01d6f83597
chore: introduce debug toolbar (#5145) 2021-01-25 14:49:26 -08:00
Dmitry Gozman
894abbfe28
feat(selectors): has-text pseudo-class (#5120)
This pseudo-class matches approximately when
`element.textContent.includes(textToSearchFor)`.
2021-01-25 14:19:07 -08:00
Dmitry Gozman
d78d337e29
feat(fill): make fill work when targeting elements inside the label (#5143) 2021-01-25 13:40:19 -08:00
Dmitry Gozman
beed9a79a3
feat(chromium): bump to 845618 (#5138) 2021-01-25 07:45:21 -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
Andrey Lushnikov
74816e4000
fix(installer): release lock if things go south (#5125)
References #5110
2021-01-23 04:27:33 +03:00
Dmitry Gozman
3e1c72ac5f
fix(reload): do not throw when reload is racing with navigation (#5113)
When `page.reload()` is racing against the renderer-initiated
navigation, we might end up with `waitForNavigation()` being rejected
before the reload implementation is able to catch it.

To avoid that, carefully use Promise.all and await `waitForNavigation`
from the get go.

Same happens to `page.goForward()` and `page.goBack()`.
2021-01-22 15:58:53 -08:00
Yury Semikhatsky
a4eb121399
fix: add parameter to close/crash/disconnected etc events (#5098) 2021-01-22 09:58:31 -08:00
Dmitry Gozman
a9b75365eb
feat(logs): add wrapApiCall for logging to many api methods (#5093)
Some methods (quite a few!) were missing the wrapper that produces the log.
2021-01-22 06:49:59 -08:00
Pavel Feldman
13cc0c51e2
chore: throttle thumbnail workers, remove video processing (#5097) 2021-01-21 19:00:32 -08:00
Dmitry Gozman
7a4b94e66c
feat(selectors): nth-match selector (#5081)
Introduces :nth-match(ul > li, 3) css extension, with one-based index.
2021-01-21 16:39:49 -08:00
Pavel Feldman
c757ba72a9
chore: add storybook dep (#5082) 2021-01-21 08:29:01 -08:00
Pavel Feldman
4b5c876bbf
chore: allow opening empty trace viewer (#5080) 2021-01-20 19:16:23 -08:00
Dmitry Gozman
16249ccbda
feat(trace): account for more action types in timeline (#5077) 2021-01-20 16:19:01 -08:00
Dmitry Gozman
263f164238
feat(trace viewer): improve source tab (#5038)
- Show stack trace and allow to select one.
- Fix an issue when the page is closed before action end and we lack an id.
- Fix timeline time labels.
2021-01-19 14:45:26 -08:00
Yury Semikhatsky
d00c5cfd64
feat(webkit): bump to 1423 (#5057) 2021-01-19 14:02:41 -08:00
Yury Semikhatsky
615954b285
fix(dom): make selectOption wait for options (#5036) 2021-01-19 11:27:05 -08:00
Dmitry Gozman
0586c2554f feat(text selector): normalize whitespace for quoted match (#5049)
This changes quoted text selector like `text="Foo Bar"` to perform
normalized whitespace match.

Most of the time users want to match some string visible on the page,
and that always means normalized whitespace.

We keep the case sensitivity and full-string vs substring difference
between quoted and unquoted matches.
2021-01-19 09:30:34 -08:00
Dmitry Gozman
0a7b917ee3
feat(chromium): bump to 844399 (#5044) 2021-01-17 17:28:06 -08:00
Dmitry Gozman
17e953c2d8
chore: make generate_types not depend on the source (#5040)
The only dependency is a list of devices that we
can turn into a js file.
2021-01-17 12:09:20 -08:00
Dmitry Gozman
afaec552dd
feat(trace): show dialogs, navigations and misc events (#5025) 2021-01-15 18:30:55 -08:00
Dmitry Gozman
b45905ae3f
feat(trace viewer): small improvements (#5007)
- Show logs.
- Show errors.
- Highlight actions.
2021-01-14 20:16:02 -08:00
Andrey Lushnikov
61b0dbb3ef
devops: start downloading firefox arm builds on Apple Silicon. (#5019) 2021-01-15 01:55:17 +03:00
Andrey Lushnikov
ff20b9d107
devops: support frequent minor releases of MacOS BigSur. (#5016)
Pre-BigSur, MacOS updates were labeled as "minor" releases, so we had
to bake separate builds for different 10.X releases.

In BigSur era, it doesn't seem to be the case, so for now we can re-use
our BigSur builds across all BigSur versions (11.0, 11.1 and 11.2).

If we ever need to have a custom build for some bigsur minor version,
e.g. `11.6`, we'll have a new browser platform along with generic
`mac11` platform.

Fixes #4775.
2021-01-14 22:45:09 +03:00
Dmitry Gozman
0a999bf0a6
fix(driver): remove path trickery from install command (#5008) 2021-01-13 19:21:30 -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
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
Pavel Feldman
9a9ac60d21
fix: fix the cli tests, generate snake python (#5003) 2021-01-13 12:52:03 -08:00
Joel Einbinder
decf373c81
fix(electron): return a ChromiumBrowserContext for electron (#4913) 2021-01-13 12:08:14 -08:00
Yury Semikhatsky
29c34325c9
fix(cookies): make filtering by url work with subdomains (#4989) 2021-01-12 15:56:29 -08:00
Dmitry Gozman
d62b661cfa
docs: rename proximity selectors to position selectors (#4975) 2021-01-11 18:25:41 -08:00
Pavel Feldman
cb6e4a6657
chore: update snippets in python docs (#4976) 2021-01-11 17:04:24 -08:00
Dmitry Gozman
725191967b
fix(connect): provide an error message when ws endpoint is incorrect (#4978) 2021-01-11 15:53:45 -08:00
Yury Semikhatsky
728846b377
fix(launcher): add vcruntime140_1.dll to the list of known deps (#4973) 2021-01-11 15:01:29 -08:00
Dominik Deren
bf64fedd88
fix(trace viewer): updating default traceStorageDir value (#4962)
fix(trace viewer): updating default traceStorageDir value

When `npx playwright show-trace <tracePath>` command is executed, without providing the `resources` optional parameter, the function expected the `traceStorageDir` default value to be the same directory as in which the tracePath resides. This change updates it to the `dirname(tracePath)/trace-resources` if it exists. Such a directory hirerachy is the default that is created when running the tracer in Playwright.
2021-01-11 13:36:35 -08:00
Dominik Deren
e990a805a8
fix: restore network request title in trace viewer. (#4957) 2021-01-09 13:03:58 -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