Commit Graph

536 Commits

Author SHA1 Message Date
Dmitry Gozman
39ce35e154
fix(errors): strict error handling around element operations (#2567)
- Gave all possible dom errors distinct names, and throw them on the node side.
- Separated errors into FatalDOMError and RetargetableDOMError.
  Fatal errors are unrecoverable. Retargetable errors
  could be resolved by requerying the selector.
- This exposed a number of unhandled 'notconnected' cases.
- Added helper functions to handle errors and ensure TypeScript catches
  unhandled ones.
2020-06-24 15:12:17 -07:00
Dmitry Gozman
355305d31d
feat(screenshot): accept timeout, migrate to Progress, wait for visible (#2679)
Element screenshot now waits for the element to become visible and
throws on detach.

Both screenshot methods accept a timeout and capture logs using Progress.
Also, carefully handling exceptions and restoring the viewport.
2020-06-24 10:16:54 -07:00
Arjun Attam
4af8c6831e
docs: improve snippets for console logs (#2684) 2020-06-23 19:34:18 -07:00
Dmitry Gozman
d0a6e1a64e
fix(dom): make selectText and scrollIntoViewIfNeeded wait for visible (#2628)
All other methods wait for the element to be visible, so we should make
them behave similarly.
2020-06-23 13:02:31 -07:00
Ivan Krutov
a8eaee3173
docs: add Moon to showcase.md (#2677) 2020-06-23 10:54:37 -07:00
Arjun Attam
6cec2dfb7c
docs: add assertions doc (#2585)
* docs: add assertions doc

* docs: assertions and verification split
2020-06-22 16:53:56 -07:00
Andrey Lushnikov
bb34418095
devops: do cache busting for APT (#2656)
To avoid caching old package lists, every `apt-get install`
should be prefixed with `apt-get update`.

More info on the matter:
- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get
- https://github.com/moby/moby/issues/3313
2020-06-22 15:54:19 -07:00
Yury Semikhatsky
5c6c65915c
fix(webkit): update Docker file to include gstreamer (#2636) 2020-06-18 18:12:00 -07:00
Max Schmitt
20b23cd21e
docs: fixed various typos (#2633) 2020-06-18 15:04:21 -07:00
Andrey Lushnikov
f61e85291b
docs: update docs for per-browser download hosts (#2630) 2020-06-18 12:35:37 -07:00
Othman Lanizi
090d450651
docs(core-concepts.md): fix typos (#2608)
Realized that the evaluateHandle method wasn't spelled properly in these two instances.
2020-06-17 14:16:56 -07:00
Arjun Attam
1bc04a088b
docs: using DEBUG=pw:api (#2578) 2020-06-15 18:34:58 -07:00
Dmitry Gozman
fd9b1031fa
docs: add actionability doc (#2577) 2020-06-15 13:40:55 -07:00
Arjun Attam
2659910be8
docs: make environment vars snippets cross-platform (#2564) 2020-06-13 13:11:39 -07:00
Arjun Attam
6530c18acd
docs: improvements to ci provider configs (#2565) 2020-06-13 13:11:24 -07:00
Darío Kondratiuk
e3f34f6ae2
fix(selectOption): allow passing null to unselect all (#2405) 2020-06-10 09:37:29 -07:00
Max Schmitt
24316ad261
chore: fix emojis for CR and FF in Dockerfile (#2522) 2020-06-10 08:02:56 -07:00
Pavel Feldman
9aa9d6bc1d
feat(downloads): accept downloads in persistent, allow specifying the downloadsPath (#2503) 2020-06-08 21:45:35 -07:00
Pavel Feldman
fb058ffe0d
feat(proxy): allow specifying proxy (#2485) 2020-06-05 13:50:15 -07:00
Pavel Feldman
c001facffc
feat(firefox): allow passing user prefs at launch time (#2417) 2020-05-31 09:28:57 -07:00
GkqqNkKC
59a0451b62
docs: fix spell mistake on api.md (#2408) 2020-05-29 08:51:45 -07:00
Dmitry Gozman
057ae14adc
feat: make browserServer.kill() wait for the process to exit (#2375)
This ensures we cleaned everything up.
2020-05-27 19:59:03 -07:00
Max Schmitt
9dfe9348ac
feat: Request.postDataJSON (#2368) 2020-05-27 18:43:49 -07:00
Daniel Rosenwasser
4e86d39881
docs: recommend a dev install of Playwright in the docs. (#2355) 2020-05-26 10:24:48 -07:00
Dmitry Gozman
aae3f1e75d
feat(default context): support selected options for default context (#2177) 2020-05-21 15:13:16 -07:00
Pavel Feldman
2ede4bce12
chore: further unify launching and connection (#2320) 2020-05-21 09:43:10 -07:00
Andrey Lushnikov
e658a3e48a
docs(click.md): update click.md documentation (#2303)
Updates according to 545c43d28d
2020-05-20 00:04:44 -07:00
Andrey Lushnikov
f24696be62
feat: add page convenience methods for textContent and getAttribute (#2235)
This patch adds:
- `page.innerText()` / `frame.innerText()`
- `page.innerHTML()` / `frame.innerHTML()`
- `page.textContent()` / `frame.textContent()`
- `page.getAttribute()` / `frame.getAttribute()`

Fixes #2143
2020-05-18 17:58:23 -07:00
Pavel Feldman
2bd427ad1d
feat(exposeBinding): a more powerful exposeFunction with source attribution (#2263) 2020-05-18 14:28:06 -07:00
David Gilbertson
9e2733d520
docs(test-runners.md): add WebStorm comment (#2279) 2020-05-17 20:43:00 -07:00
David Gilbertson
125312f78b
docs(core-concepts.md): fix typo (#2273) 2020-05-17 08:58:33 -07:00
Dmitry Gozman
696b40a508
docs: update click.md 2020-05-14 10:44:20 -07:00
Dmitry Gozman
e96e471e40
docs: draft for the various click scenarios doc (#2218) 2020-05-13 15:15:14 -07:00
Pavel Feldman
f63ea3ffd2
feat(downloads): expose suggested filename (#2062) 2020-05-12 19:23:08 -07:00
Arjun Attam
84f966c301
docs: fix typo 2020-05-12 18:32:47 -07:00
Dmitry Gozman
6361e07ae4
fix(docs): clarify repeating calls to setHTTPCredentials (#2212) 2020-05-12 18:29:55 -07:00
Andrey Lushnikov
5d49c5d612
docs: refer to "working with selectors" from all 'selector' arguments (#2213)
The "working with selectors" section elaborates on rules that we use
to parse selectors.

Fixes #2197
2020-05-12 16:15:14 -07:00
Andrey Lushnikov
b4acc56d63
docs(api.md): elaborate on visibility options in waitForSelector (#2208)
Fixes #2202
2020-05-12 15:46:19 -07:00
Arjun Attam
054ee639b4
docs(ci): elaborate ci caching docs (#2192) 2020-05-11 22:52:21 -07:00
Łukasz Fiszer
0c51a2e89d
docs: add mockiavelli library to Showcase (#2181) 2020-05-11 13:11:59 -07:00
Arjun Attam
2510edc394
docs(ci): update docs for caching and troubleshooting (#2176) 2020-05-11 09:54:03 -07:00
Pavel Feldman
d487a315b9
doc: fix the route docs (#2174) 2020-05-11 08:22:48 -07:00
Vasilii Artemchuk
4c4fa8d38c
docs: some syntax fixes (#2116) 2020-05-07 12:33:35 -07:00
Pavel Feldman
f86ddacb85
docs: mention click(force) and dispatchEvent(click) in the click docs (#2136) 2020-05-07 12:29:59 -07:00
Pavel Feldman
41de5bc388 Revert "chore: mark v0.18.0 (#2122)"
(should go only into branch)
This reverts commit 19e8c327ba.
2020-05-05 16:55:55 -07:00
Pavel Feldman
19e8c327ba
chore: mark v0.18.0 (#2122) 2020-05-05 16:52:54 -07:00
Andrey Lushnikov
193924f405
chore: add script to generate release notes (#2099) 2020-05-04 22:28:09 -07:00
Vasilii Artemchuk
52aa929922
docs(api.md): emulateMedia syntax fixes (#2104) 2020-05-04 17:48:18 -07:00
Vasilii Artemchuk
ef9eed8702
docs(api.md): emulateMedia example fix (#2100) 2020-05-04 15:06: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
Pavel Feldman
bb13a329f0 docs: better intro toc 2020-05-03 14:22:07 -07:00
Pavel Feldman
5bc62a0e25 docs: add anchors for toc topics 2020-05-03 11:23:19 -07:00
Pavel Feldman
eed2bac441 docs: added overview links 2020-05-03 11:17:01 -07:00
Max Schmitt
22e7513272
docs(verification): fixed unclosed code tag (#2085)
Caused in 3979d4f492 and ended up in a failing CI
2020-05-03 07:59:41 -07:00
Sergey Bekrin
c38f26ea02
docs(installation.md): update cache path on linux (#2084) 2020-05-03 07:58:46 -07:00
Pavel Feldman
3979d4f492 docs: bring snippets higher up in the docs 2020-05-02 17:21:46 -07:00
Andrey Lushnikov
3251465657
chore: add script to fetch closed bugs since git commit (#2066) 2020-04-30 17:57:45 -07:00
Arjun Attam
7051c0bf34
docs(installation): update windows location 2020-04-30 17:41:56 -07:00
Pavel
671e465450 docs(testrunners): brush up testrunners doc 2020-04-30 12:28:10 -07:00
Joel Einbinder
12edf4f03f
doc: test runner examples (#2057) 2020-04-30 11:24:27 -07:00
Andrew Healey
06273ef955
docs(api.md): Fix wording of javaScriptEnabled description (#2050) 2020-04-29 22:21:07 -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
Pavel Feldman
9f62f29946
feat(install): use shared installation folder by default (#2044) 2020-04-29 18:59:20 -07:00
Dmitry Gozman
3fefa7b7ff
docs: fix docs for $foo methods that assumed css selectors (#2039) 2020-04-29 15:24:59 -07:00
Steve Davis
4652b9e248
docs: Recommend using --ipc=host in docker (#2038) 2020-04-29 14:52:50 -07:00
Dmitry Gozman
3a29631e9f
docs: improve docs around actionability and visibility (#2036) 2020-04-29 14:18:01 -07:00
Dmitry Gozman
031587a9cf
fix(visibility): unify visibilty checks (#1998)
This applies a common definition of visibility to clicks and waitfors:
- non-empty bounding box - implies non-empty content and no display:none;
- no visibility:hidden.
2020-04-27 15:40:46 -07:00
Dmitry Gozman
4b0d977489
fix(docs): clarify the single/double quotes usage in text selector (#2002) 2020-04-27 14:16:13 -07:00
Pavel Feldman
7f8aa703dd
api(waitFor): remove waitFor, use specialized wait functions (#1995) 2020-04-27 12:08:29 -07:00
Dmitry Gozman
f9f5fd03b0
feat(selectors): allow to capture intermediate result (#1978)
This introduces the `*name=body` syntax to capture intermediate result.
For example, `*css=section >> "Title"` will capture a section that contains "Title".
2020-04-27 10:14:09 -07:00
Arjun Attam
a2664b1580
docs: update ci section in getting started 2020-04-27 09:27:50 -07:00
Arjun Attam
158e592fa8
docs(installation): adds requirements and renames the doc (#1965) 2020-04-24 12:20:04 -07:00
Arjun Attam
8ceba1eea0
docs(ci): update ci docs to emphasize gh action (#1964) 2020-04-24 12:19:54 -07:00
Arjun Attam
28f98ac278
docs(readme): update readme and intro docs (#1963) 2020-04-24 12:19:31 -07:00
Andrey Lushnikov
4b263d6334
docs(releasing): update releasing docs according to new process (#1958) 2020-04-24 08:55:29 -07:00
Marcin Pietruszka
3c71125d7f
Fix typo (#1961) 2020-04-24 08:48:19 -07:00
Andrey Lushnikov
21dc346b16
devops: auto-correct links in our documentation (#1955) 2020-04-23 19:52:06 -07:00
Dmitry Gozman
5ac7f0e4ec
fix(text selector): allow single quoted text (#1952) 2020-04-23 18:48:53 -07:00
Pavel Feldman
c1c0237d4e
api(dispatchEvent): page, frame and handle versions added (#1932) 2020-04-23 14:58:37 -07:00
Joel Einbinder
671cfa0a54
fix(types): support objects with typed keys and values (#1752)
There are a few places in the API where we use objects as maps. This patch adds them to docs and the types.

For `env`, we accept booleans and numbers as well because they are often used for their string values.
2020-04-23 14:45:57 -07:00
Pavel Feldman
40bed0f50c
docs: fix typos (#1947) 2020-04-23 13:40:34 -07:00
Arjun Attam
51ed5c5b4d
fix(examples): closes #1916 (#1934) 2020-04-23 08:44:58 -07:00
Max Schmitt
b516ac4fb2
fix: Dockerfile for Firefox (#1937) 2020-04-23 08:43:53 -07:00
Andrey Lushnikov
f8f3b8862c
docs(verification.md): fix typo 2020-04-22 00:32:46 -07:00
Andrey Lushnikov
89007c8f3d
devops: make README.md to always reflect tip-of-tree (#1911)
As of today, we have tooling in place that makes sure that our
main README.md **roughly** represents the state of the last release:
- browser versions and browser badges are those that we released last
- links to our API point to the last-released API version

This tooling, however, relies on the fact that every release is a sequence
of two consecutive commits:
- one commit that sets `package.json` version to a released version
- the following that "bumps" version to `-post`.

This release process is very unfortunate, because:
- it made releasing from branch impossible
- it required "freezing" commits to the master branch

This patch removes all the tooling and transitions `README.md` to always
represent tip-of-tree state. We will fully rely on
`https://playwright.dev` to show versioned docs.
2020-04-21 22:08:56 -07:00
Andrey Lushnikov
0815ff36be
docs(browsers.md): fix nit 2020-04-21 17:19:10 -07:00
Pavel Feldman
fa18c419af
docs(browsers.md): updates and nits 2020-04-21 17:17:29 -07:00
Pavel Feldman
18650589e2
docs(browsers.md): updates and nits 2020-04-21 17:13:14 -07:00
Andrey Lushnikov
89b2fe5f38
feat: introduce PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD env variable (#1892) 2020-04-21 16:47:16 -07:00
Andrey Lushnikov
0935144c21
docs(browsers): add documentation describing managing browsers (#1907) 2020-04-21 16:38:40 -07:00
Arjun Attam
88366f3bb9
docs: adds introduction.md (#1905)
* docs: adds introduction.md

* elaborate on async/await pattern
2020-04-21 15:42:52 -07:00
Yury Semikhatsky
e9914ccfea
docs: fix formatting 2020-04-21 11:28:08 -07:00
Pavel Feldman
5b085fdf03
feat(logger): introduce context-level logger (#1896) 2020-04-20 23:24:53 -07:00
Pavel Feldman
80a7fcd2de docs(verification): nits and typos 2020-04-20 17:35:50 -07:00
Yury Semikhatsky
c2fe55e630
docs: add verification guide (#1885) 2020-04-20 16:56:46 -07:00
Pavel Feldman
0656771167
api(networkidle): remove networkidle2 (#1883) 2020-04-20 16:52:26 -07:00
Dmitry Gozman
3485ffb4e6
fix(docs): fix snippets, integrate navigations to ToC and core concepts (#1884) 2020-04-20 14:04:49 -07:00
Pavel Feldman
4d8c057d9c docs(selectors&ci): brush up respective sections 2020-04-20 10:38:46 -07:00
Yury Semikhatsky
621df5d68b
docs: fix cross references (#1877) 2020-04-20 10:29:01 -07:00
Yury Semikhatsky
ed89c379cb
docs: fix API references 2020-04-20 10:16:56 -07:00
Pavel Feldman
6231d50ba5 docs(core-concepts): follow up on object handles 2020-04-20 09:53:48 -07:00
Andrey Lushnikov
39b37be788
docs(core-concepts.md): add section regarding object & element handles (#1871) 2020-04-20 09:46:36 -07:00
Pavel Feldman
1f43ae692f
feat(logging): introduce logger sink api (#1861) 2020-04-20 07:52:26 -07:00
Pavel Feldman
ef7815e95b doc(network): reorder items in network docs 2020-04-19 19:42:40 -07:00
Pavel Feldman
f6fec27900 docs(core-concepts): add selectors and auto-wait sections 2020-04-19 19:06:23 -07:00
Pavel Feldman
92a4c70331
docs(input): include clicks and files sections (#1868) 2020-04-19 18:47:36 -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
Pavel
629b77271c docs(loading): nits and fixes 2020-04-16 15:02:41 -07:00
Pavel
e67603db27 docs(emulation): review, fix nits 2020-04-16 14:19:21 -07:00
Yury Semikhatsky
42eefa674b
docs: emulation guide (#1831) 2020-04-16 13:54:21 -07:00
Arjun Attam
67cd5698a7
docs: typo fix 2020-04-16 12:48:16 -07:00
Pavel Feldman
da24fe12a6
docs: rename to upload-download.md 2020-04-16 12:13:22 -07:00
Arjun Attam
ae6b1ba7ce
docs(uploads): fix typo 2020-04-16 11:55:11 -07:00
Pavel Feldman
0d4f73f251
docs(core-concepts): some nits (#1827) 2020-04-16 11:10:11 -07:00
Pavel Feldman
08c8a74e09
docs(network): polish network docs (#1826) 2020-04-16 10:48:38 -07:00
Arjun Attam
858f643e8b
docs(concepts): introduce core concepts doc (#1824) 2020-04-16 10:27:31 -07:00
Pavel Feldman
2280126344
api(setInputFiles): introduce page/frame helpers, document, break compat (#1818) 2020-04-16 10:25:28 -07:00
Andrey Lushnikov
58bb874299
docs(network): introduce network docs (#1822)
* docs(network): introduce network docs

* update title
2020-04-16 09:39:33 -07:00
Dmitry Gozman
ba36860d79
feat(api): page.unroute to remove routes (#1813) 2020-04-15 19:55:22 -07:00
Dmitry Gozman
88054e34c9
feat(docs): initial version of the loading explainer (#1800) 2020-04-15 15:21:27 -07:00
Pavel
60eb3cdd3d docs(input): minor edits 3 2020-04-15 11:05:24 -07:00
Pavel
089a9dde96 docs(input): minor edits 2 2020-04-15 11:02:47 -07:00
Pavel
438d2761ff docs(input): minor edits 2020-04-15 11:01:27 -07:00
Pavel Feldman
50680dee57
docs(input): start crafting the input cheat sheet (#1804) 2020-04-15 10:53:47 -07:00
Dmitry Gozman
b0d79d5124
feat(shadow): make css pierce shadow by default (#1784)
We leave css:light, text:light, id:light, and similar to opt-out from the shadow dom piercing. The notable exception is xpath that is always light.
2020-04-15 10:16:29 -07:00
Andrey Lushnikov
0ba823dd6f
feat: introduce page.on('crash') event (#1782)
Currently, whenever the page crashes, it emits an `'error'` event.
Error event is a special type of event in node.js; if unhandled,
it crashes the process.

Instead of emitting `'error'` event, this patch switches to emitting
`'crash'` event. Playwright users are free to handle the event
however they like, or just to ignore it.
2020-04-15 00:04:35 -07:00
Pavel Feldman
da683b2752
feat(selectAll): allow selecting all in the inputs and in the plain dom (#1783) 2020-04-14 17:09:26 -07:00
Pavel Feldman
c2fc4035ba
doc(keyboard): document Shift+ArrowLeft notation (#1771) 2020-04-14 13:11:02 -07:00
Lucas Willems
bb0b6cd90a
Update api.md (#1773) 2020-04-14 08:38:59 -07:00
Andrey Lushnikov
abf1219fc1
docs(api.md): string values should be quoted (#1766) 2020-04-13 18:58:03 -07:00
Dmitry Gozman
9542f47511
feat(selectors): deep selector which pierces open shadow roots (#1738) 2020-04-13 13:04:27 -07:00
Arjun Attam
183840586f
docs(ci): update link to github action (#1742) 2020-04-10 10:24:22 -07:00
Pavel Feldman
78abf5cb40
feat(api): add getAttribute, innerText, innerHTML, textContent (#1717) 2020-04-09 16:49:23 -07:00
Andrey Lushnikov
b385ea8415
chore: bump version to v0.13.0-post (#1721) 2020-04-08 17:30:45 -07:00
Andrey Lushnikov
17e645ad34
chore: mark version v0.13.0 (#1720) 2020-04-08 16:53:44 -07:00
Andrey Lushnikov
6723254266
docs: remove stale file (#1719)
We don't support web bundling at the moment.
2020-04-08 15:39:26 -07:00
Andrey Lushnikov
d21e2c9b46
docs(api.md): clarify downloads lifetime (#1698) 2020-04-07 17:13:42 -07:00
Tyler Wilcock
222d01caaa
devops(docker): Install ffmpeg dependency, adding codecs necessary for video playback in Firefox (#1627)
Fixes #1613
2020-04-07 16:09:27 -07:00
Pavel Feldman
c6f580faf8
chore: migrate from timeouts to deadlines internally (#1695) 2020-04-07 14:35:34 -07:00
Arjun Attam
362b72cf9d
docs(docker): fix tag in docker run command (#1694) 2020-04-07 11:21:42 -07:00
Andrey Lushnikov
4cf5cf6c0e docs(api.md): fix link to download class 2020-04-07 00:27:08 -07:00
Pavel Feldman
3dc14eddaf
fix(colorScheme): make light scheme default on all browsers (#1668) 2020-04-06 19:49:33 -07:00
Dmitry Gozman
a91304a37a
feat(selectors): attribute selectors pierce open shadow roots (#1656)
References #1375.
2020-04-03 20:47:08 -07:00
Dmitry Gozman
270206e2b4
feat(text selector): match button input by value (#1657)
Inputs of type button and submit are rendered with their value as text,
so we match them by text.

Fixes #1427.
2020-04-03 14:18:08 -07:00
Dmitry Gozman
a9be3c5191
feat(text selector): pierce shadow roots (#1619) 2020-04-02 18:03:30 -07:00
Pavel Feldman
75571e8eb8
feat(downloads): support downloads on cr and wk (#1632) 2020-04-02 17:56:14 -07:00
| |三 \/ | |\|
2ac69670cd
docs(api.md): remove dead link to FAQ section (#1640)
The FAQ section part, where `https://github.com/Microsoft/playwright/#q-why-doesnt-playwright-vxxx-work-with-chromium-vyyy` points to, doesn't exist anymore. This pull request simply removes the dead link.
2020-04-02 10:16:01 -07:00
Arjun Attam
9d04dcc0ce
docs(examples): working with selectors (#1624) 2020-04-01 16:06:07 -07:00