Commit Graph

2095 Commits

Author SHA1 Message Date
Dmitry Gozman
e55a2bdf16
docs: rework Selectors to Other Locators (#19244)
- Replace links to `selectors.md` with `locators.md`.
- Remove sections that are covered by Locators docs.
- Restructure the rest of selectors doc, update them in terms of
locators.

Fixes #18992.
2022-12-02 21:48:37 -08:00
Pavel Feldman
9b35ef3b8d
docs: introduce the concept of details (#19242) 2022-12-02 17:35:21 -08:00
Andrey Lushnikov
6d82460a02
feat: implement a new image comparison function (#19166)
This patch implements a new image comparison function, codenamed
"ssim-cie94". The goal of the new comparison function is to cancel out
browser non-determenistic rendering.

To use the new comparison function:

```ts
await expect(page).toHaveScreenshot({
  comparator: 'ssim-cie94',
});
```

As of Nov 30, 2022, we identified the following sources of
non-determenistic rendering for Chromium:
- Anti-aliasing for certain shapes might be different due to the
  way skia rasterizes certain shapes.
- Color blending might be different on `x86` and `aarch64`
architectures.

The new function employs a few heuristics to fight these
differences.

Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`:
1. If the [CIE94] metric is less then 1.0, then we consider these pixels
   **EQUAL**. (The value `1.0` is the [just-noticeable difference] for
   [CIE94].). Otherwise, proceed to next step.
1. If all the 8 neighbors of the first pixel match its color, or
   if the 8 neighbors of the second pixel match its color, then these
   pixels are **DIFFERENT**. (In case of anti-aliasing, some of the
   direct neighbors have to be blended up or down.) Otherwise, proceed
   to next step.
1. If SSIM in some locality around the different pixels is more than
   0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them
   as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be
   very close to 1.0).

[CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94
[just-noticeable difference]:
https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-02 15:22:05 -08:00
Yury Semikhatsky
e998b6cab9
docs: auth in project setup (#19220) 2022-12-01 16:53:54 -08:00
Max Schmitt
62b28c89b4
docs(assertions): fix wrong toHaveText param description (#19213)
Fixes https://github.com/microsoft/playwright/issues/19202
2022-12-01 09:14:06 -08:00
Pavel
d63f2542a2 chore: follow up to mock api doc change 2022-11-30 19:31:30 -08:00
Pavel Feldman
2fd0982372
docs: improve API mocking docs (#19189) 2022-11-30 19:29:14 -08:00
Pavel Feldman
f0e8d8f074
feat(api): introduce route.fetch and route.fulfill(json) (#19184) 2022-11-30 17:26:19 -08:00
Max Schmitt
878401ff2b
docs(test-reporters): fix code snippet typos
Fixes #19159
2022-11-30 15:37:31 -08:00
Dmitry Gozman
6721ea4d3a
docs: fix string AriaRole in java/csharp (#19183) 2022-11-30 13:46:33 -08:00
Dmitry Gozman
499324961a
docs: remove Promise.all from examples (#19154)
Replaced with explicit `popupPromise` variable.
2022-11-30 12:36:35 -08:00
Yury Semikhatsky
de1fc170b2
docs: TestProject.setup (#19152) 2022-11-30 09:18:47 -08:00
Dmitry Gozman
307a0b6ea7
fix(dotnet): codegen/docs use Name instead of NameString (#19156) 2022-11-29 20:56:18 -08:00
Pavel Feldman
89bdaf2441
chore: rename ScreenshotAssertions to SnapshotAssertions (#19150) 2022-11-29 16:57:03 -08:00
Yury Semikhatsky
c9ec8b3e55
docs: clarify what is passed as Test.grep input (#19153)
Fixes https://github.com/microsoft/playwright/issues/18669
2022-11-29 16:03:30 -08:00
Jacob Stevenson
b7a49fb371
docs: Improve usage of PublishTestResults for Azure Pipelines (#18241) 2022-11-29 13:02:30 -08:00
Tom Sparrow
90e3194482
docs(debug.md): clarify what slowMo number means (#18788) 2022-11-29 12:54:18 -08:00
Devin Beliveau
707cb1a0d5
docs: correct CircleCI brand name (#18988) 2022-11-29 12:52:07 -08:00
Shubham Kanodia
3d804ff7cd
chore: rewrite error message for missing snapshot (#19104) 2022-11-29 12:51:15 -08:00
Brian Zelip
7a68e79b7f
docs(js): add step to the cli install command overview (#19089) 2022-11-28 20:02:55 -08:00
Simon Legner
43cde2db10
docs(locator): fix #locate-by-test-id link (#19095) 2022-11-28 20:00:30 -08:00
Dmitry Gozman
65b0fb055d
docs: note assertion methods that only work with playwright test runner (#19116)
Fixes #18963.
2022-11-28 10:32:48 -08:00
Dmitry Gozman
bd07a63683
docs: highlight printsToStdio in reporter reference (#19118)
Fixes #18945.
2022-11-28 10:32:01 -08:00
Simon Legner
9e91ca353c
docs(release-notes): YouTube video for version 1.28 (#19099) 2022-11-27 22:51:03 -10:00
Pavel Feldman
be2139f0ac
docs: split assertions list into langs (#19039) 2022-11-24 08:25:24 -08:00
Max Schmitt
30debb5110
docs(python): expand assertion List types (#18975)
The following was before:

```txt
typing.Union[
    typing.List[typing.Union[typing.Pattern[str], str]],
    typing.Pattern[str],
    str,
]
```

but it should be:

```txt
typing.Union[
    typing.List[typing.Pattern[str]],
    typing.List[str],
    typing.List[typing.Union[typing.Pattern[str], str]],
    typing.Pattern[str],
    str,
]
```

Otherwise mypy yells at us.

See https://github.com/microsoft/playwright-python/issues/1524
2022-11-23 11:32:16 -10:00
Pavel Feldman
f9a32e0927
chore: follow up to deprecation changes (#19025) 2022-11-23 12:32:14 -08:00
Pavel Feldman
f97dcd4c79
docs: annotate deprecated methods (#19005) 2022-11-23 08:40:47 -08:00
ffluk3
e2624979e6
Fix timeout documentation (#18925) 2022-11-21 15:35:35 -08:00
Eduardo Vargas Torres
490ae796f3
docs (test-typescript-js.md): clarify TS ESM config (#18971)
Signed-off-by: Eduardo Vargas Torres <evargast@adobe.com>
2022-11-21 15:31:37 -08:00
Max Schmitt
6a5552ba24
chore: drop Ubuntu 18.04 support (#18924) 2022-11-21 11:23:45 -10:00
Dmitry Gozman
d6ab1a90bf
docs: fix typos in some snippets (#18966)
Fixes #18898.
2022-11-21 10:47:38 -08:00
Pavel Feldman
620e8547d4
chore: generate usage: sections based on snippets (#18965) 2022-11-21 10:40:21 -08:00
Pavel Feldman
3fb4b3bbf9
chore: normalize api markdown (#18942) 2022-11-21 09:30:32 -08:00
Max Schmitt
c2e3704f86
docs(dotnet): wrong AddInitScriptAsync snippet (#18893)
Fixes https://github.com/microsoft/playwright-dotnet/issues/2399
2022-11-17 10:58:49 -10:00
Max Schmitt
3ed9dab1c9
docs(locator): code snippet fixes (#18884)
Follow-up on https://github.com/microsoft/playwright/pull/18839
2022-11-17 10:41:25 -08:00
Pavel Feldman
f7b269d9c6
docs: brush up writing tests section (#18861) 2022-11-16 19:48:20 -08:00
Eduard Bardají Puig
10b8a83b45
docs(parameterize): fix code snippet (#18848) 2022-11-16 11:44:45 -10:00
Christian Clauss
a7f205bf4d
docs(ci): upgrade GitHub Actions (#18845) 2022-11-16 11:42:04 -10:00
Yury Semikhatsky
5fcd8839dc
docs: Java, .NET, Python release notes 1.28 (#18854) 2022-11-16 13:19:20 -08:00
Yury Semikhatsky
05fb3e6de8
Revert "chore: hide TestProject.setup and TestInfo.storage (#18800)" (#18836)
Now that the patch has been cherry-picked to the release branch
reverting it on main.

This reverts commit 6deba5dc21.
2022-11-16 11:23:10 -08:00
Pavel Feldman
7c65b5d1f5
chore: render html cards for locators.md (#18839) 2022-11-16 09:54:40 -08:00
Debbie O'Brien
402b2d499e
docs: update vscode doc (#18809) 2022-11-16 08:12:26 +01:00
Dmitry Gozman
0387d96cd5
chore: multiply overloaded options in csharp (#18818)
This way we'll get the same treatment in docs generator as well as
dotnet api generator.

This also adds non-suffixed aliases for string options, e.g. `Name` in
addition to `NameString` and `NameRegex`.

Fixes #18407.
2022-11-15 15:46:54 -08:00
Pavel Feldman
210a57ea3b
docs: remove images from locators.md (#18832) 2022-11-15 13:13:16 -08:00
Andrey Lushnikov
250bc9fb2f
doc: version 1.28 release notes (#18802) 2022-11-15 11:40:35 -08:00
Yury Semikhatsky
6deba5dc21
chore: hide TestProject.setup and TestInfo.storage (#18800) 2022-11-14 17:03:01 -08:00
Dmitry Gozman
1b0a8122ba
chore: allow py code blocks for python (#18799)
Turns out, we have some snippets that use `py` instead of `python`.
2022-11-14 14:50:01 -08:00
Debbie O'Brien
25605c616c
Selectors quick fix (#18742) 2022-11-14 15:23:25 +01:00
Dmitry Gozman
a7b2b04588
fix(getByRole): name and exact (#18719)
Following the `getByText()` and other methods:

- By default, matching is substring and case-insensitive. Before, it was
only case-insensitive, but not substring.
- With new option `exact: true`, matching is full string and
case-sensitive.
- Matching always normalizes whitespace.
- Codegen generates `exact: false` by default.
- `internal:role` treats `[name="foo"i]` as non-exact match.

Various fixes:
- Updated `getByRole` docs to match the reality.
- Locator generator edge cases.
2022-11-11 15:58:36 -08:00