Andrey Lushnikov
6d491f928d
feat(playwright-test): introduce snapshotPathTemplate configuration ( #18568 )
...
This configuration option allows to set a string with template
values for precise control over snapshot path location.
An example of `snapshotPathTemplate` usage:
```ts
// playwright.config.ts
// Notice the `testDir` configuration!
export default {
testDir: './tests',
snapshotPathTemplate: './__screenshots__/{platform}/{projectName}/{testFilePath}/{arg}{ext}',
}
```
Currently supported "magic tokens" inside the `snapshotPathTemplate`
are:
- `{testDir}` - project's `testDir`
- `{snapshotDir}` - project's `snapshotDir`
- `{platform}` - `process.platform`
- `{projectName}` - Project's sanitized name
- `{testFileDir}` - Directories in relative path from `testDir` to test
file path (e.g. `page/` in the example below)
- `{testFileName}` - Test file name (with extension) (e.g.
`page-click.spec.ts` in the example below)
- `{testFilePath}` - Relative path from `testDir` to test file path
(e.g. `page/page-click.spec.ts` in the example below)
- `{ext}` - snapshot extension (with dots)
- `{arg}` - joined snapshot name parts, without extension (e.g.
`foo/bar/baz` in the example below)
- `{snapshotSuffix}` - `testInfo.snapshotSuffix` value.
Consider the following file structure:
```
playwright.config.ts
tests/
└── page/
└── page-click.spec.ts
```
The following `page-click.spec.ts`:
```ts
// page-click.spec.ts
import { test, expect } from '@playwright/test';
test('should work', async ({ page }) => {
await expect(page).toHaveScreenshot(['foo', 'bar', 'baz.png']);
});
```
Fixes #7792
2022-11-09 15:29:07 -08:00
Max Schmitt
91f7e3963d
docs(python): have enum value to reset emulated media ( #18550 )
2022-11-03 12:38:02 -07:00
Pavel Feldman
a7f5f2d7a1
chore: allow not overriding media when creating context ( #18413 )
2022-10-31 09:09:52 -07:00
Dmitry Gozman
c4404ea98f
docs: add examples and clarifications to getByText ( #18380 )
...
Also be more explicit about normalizing whitespace, event with exact
match.
Fixes #17831 .
2022-10-27 10:27:18 -07:00
Sean Killeen
7ae447ea0f
docs: fix typos ( #17919 )
2022-10-20 13:46:37 -07:00
AlenPaulVarghese
696f6f029a
docs: fixed a typo, in the documentation ( #18218 )
2022-10-20 13:35:17 -07:00
Pavel Feldman
05678c9986
docs: add custom test id attribute snippet ( #18210 )
...
Fixes https://github.com/microsoft/playwright/issues/18203
2022-10-20 10:54:57 -07:00
Max Schmitt
e986e88c55
docs: fix wrong getByLabelText example ( #18036 )
2022-10-12 13:02:45 -07:00
Oliver Sand
6b01df6d92
fix: fix typo in treeitem role typing ( #17952 )
2022-10-10 20:57:55 +03:00
Dmitry Gozman
df4498e7ee
docs: mention that exact option is ignored for regex ( #17912 )
2022-10-07 10:19:13 -07:00
Pavel Feldman
eb4baf76bf
feat(api): make aria roles an enum ( #17885 )
2022-10-06 11:34:22 -07:00
Pavel Feldman
bfb8a43ece
feat(api): all getByTitle, getByAltText ( #17724 )
2022-09-29 21:45:44 -07:00
Pavel Feldman
083fb4401c
feat(api): add getByPlaceholderText ( #17722 )
2022-09-29 18:12:49 -07:00
Pavel Feldman
e3a2316013
feat(api): add getByLabelText ( #17684 )
2022-09-29 11:06:58 -07:00
Pavel Feldman
d8f67eb75d
feat(api): introduce getByTestId ( #17645 )
2022-09-27 21:06:07 -07:00
Pavel Feldman
d9a28bd244
feat(api): introduce get/getByText/getByRole ( #17577 )
2022-09-27 16:13:56 -07:00
Pavel Feldman
bfd38bf7df
chore: introduce md templates ( #17632 )
2022-09-27 10:29:34 -07:00
Philip Langer
26150b7064
docs: fix typo persistet -> persisted ( #17498 )
2022-09-21 13:58:34 +02:00
Yury Semikhatsky
e62e84015c
docs(evaluate): clarify semantics of expression string ( #17472 )
2022-09-20 11:31:56 -07:00
Yury Semikhatsky
24ee456d43
chore: make maxRedirects available in java, improve docs. tests ( #17227 )
2022-09-09 13:25:36 -07:00
Vincenzo Gasparo
17b203affb
feat: added follow and redirect arguments to fetch ( #17033 )
2022-09-09 12:14:42 -07:00
JJetmar
b93668e301
docs: spelling fix ( #16842 )
...
Co-authored-by: Ross A. Wollman <ross.wollman@gmail.com>
2022-08-26 12:57:18 -07:00
Max Schmitt
be33ec817b
feat(webkit): add forced colors media query override ( #16654 )
2022-08-19 14:19:54 +02:00
Pavel Feldman
3cd8d6e513
chore(docs): revert recent changes temporarily ( #16590 )
2022-08-16 22:00:54 -07:00
Debbie O'Brien
26623a0a77
docs: selectors guide merge ( #16571 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-16 16:14:02 +02:00
Kian-Meng Ang
22f0723c72
docs: fix typos in docs ( #16370 )
...
Co-authored-by: Debbie O'Brien <debs-obrien@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-09 15:47:17 +02:00
Yury Semikhatsky
e37514b43c
docs: dragAndDrop source/target descriptions ( #15658 )
2022-07-14 09:42:26 -07:00
Pavel Feldman
6181b0dcaf
docs: annotate since ( #15386 )
2022-07-05 17:24:50 -07:00
Pavel Feldman
6a8d835145
chore: allow updating har while routing ( #15197 )
2022-06-28 15:09:36 -07:00
Yury Semikhatsky
997aac59ff
docs: recordHar content and mode options for language ports ( #15097 )
2022-06-23 18:55:15 -07:00
Pavel Feldman
7bd72716f9
feat(har): introduce the slim mode ( #15053 )
2022-06-22 14:44:12 -07:00
Pavel Feldman
9525bedc1f
feat(har): re-add routeFromHAR ( #15024 )
2022-06-21 22:12:37 -07:00
Ross Wollman
0f8114f6a8
docs: replace serviceWorkers workaround ( #14902 )
2022-06-20 19:31:19 -07:00
Pavel Feldman
5e6b493bc9
doc(har): add more details into the har doc ( #14998 )
2022-06-20 17:54:39 -07:00
Pavel Feldman
be64e9ce66
chore(har): attach resources for .zip hars ( #14938 )
2022-06-16 18:27:25 -07:00
Pavel Feldman
245c33a5d4
feat(har): allow storing content as separate files ( #14934 )
2022-06-16 16:33:32 -07:00
Yury Semikhatsky
b88c89548e
docs: update har options for non-js ports ( #14899 )
2022-06-15 16:57:42 -07:00
Yury Semikhatsky
c349c1d57f
feat: newContext.har ( #14892 )
...
Replaced {Page,BrowserContext}.(un)routeFromHar with browser.newContext.har.
2022-06-15 16:35:44 -07:00
Ross Wollman
1ed2e46f07
docs: recordHar.urlFilter for non-js clients ( #14894 )
2022-06-15 15:40:21 -07:00
Ross Wollman
61536098be
docs: fix serviceWorkers formatting ( #14845 )
2022-06-13 15:18:24 -07:00
Ross Wollman
85d03714d9
feat: add allow/block serviceWorkers option ( #14714 )
...
Adds cross-browser support for easily allowing/blocking Service Workers via a Context option.
Includes plumbing for Playwright Test's `use`.
Resolves #14522 .
Relates #1090 .
Supercedes #14321 .
2022-06-08 18:27:51 -04:00
Dmitry Gozman
fdcdd58d7f
feat(har): introduce urlFilter ( #14693 )
...
This is a glob or regex pattern that filters entries recorder in the HAR.
2022-06-07 18:09:47 -07:00
Yury Semikhatsky
c1aecc7d50
docs: maxDiffPixels description typo ( #14456 )
2022-05-29 09:46:06 -07:00
Max Schmitt
7f640d8a49
docs(dotnet): add API testing ( #13889 )
2022-05-23 22:12:57 +03:00
Max Schmitt
9256de5f48
chore: fix wrong toHaveScreenshot defaults in docs ( #14200 )
2022-05-16 22:26:23 +03:00
Dmitry Gozman
0e2855348c
feat(locators): remove layout locators ( #14129 )
2022-05-12 18:50:19 +01:00
Dmitry Gozman
c3cf7ee4a7
feat(layout locators): remove maxDistance option ( #14013 )
2022-05-08 07:18:16 +01:00
Andrey Lushnikov
5a5bb36d28
chore: nuke "fonts" screenshot option ( #14004 )
...
It was never released since it wasn't working as expected on WebKit WPE.
Fixes #12839
2022-05-06 17:54:17 -07:00
Dmitry Gozman
54dd6d01e5
feat(locator): layout options (leftOf, rightOf, above, below, near) ( #13821 )
...
This also includes corresponding selector engines `left-of` and others,
modeled after existing `has` selector engine.
2022-05-03 10:33:33 +01:00
Dmitry Gozman
20dcc45afa
feat: support experimental doc entries ( #13446 )
...
feat: support experimental doc entries
- Params/options/members are marked as experimental in the docs.
- `experimental.d.ts` is generated that contains all types and
includes experimental features.
- `experimental.d.ts` is references in our tests so that we
can test experimental features.
- `fonts` option is restored as experimental.
2022-04-13 16:13:30 -07:00
Yury Semikhatsky
1ee42a366d
docs: mark fetch params as optional again ( #13479 )
2022-04-11 10:01:32 -07:00
Dmitry Gozman
c68f57d2d0
docs: mark optional properties/arguments explicitly with "?" ( #13369 )
...
Previously, we were guessing whether something is optional from the
comment (looking for stuff like "defaults to" or "optional").
To remove this error-prone technique, every optional property or
argument (but not option) is explicitly marked with "?".
2022-04-06 19:02:10 -07:00
Akul Srivastava
d9d826b7f6
docs: fixes typo ( #13094 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-04-06 12:00:51 +02:00
Dmitry Gozman
a09b8dfa36
chore: unrelease 'fonts' screenshot option ( #13300 )
2022-04-04 14:51:11 -07:00
Dmitry Gozman
4e1fb1728f
docs: small clarifications to hasText and has-text ( #13298 )
2022-04-04 13:18:03 -07:00
Dmitry Gozman
a200fe3528
feat(screenshot): rename "size" option to "scale" ( #13254 )
...
Drive-by: fix `caret` handling in `toHaveScreenshot`.
2022-04-01 12:28:40 -07:00
Andrey Lushnikov
a9989852d5
feat(vrt): new option "caret" for taking screenshots ( #13164 )
...
This has two values:
- `"hide"` to hide input caret for taking screenshot
- `"initial"` to keep caret behavior unchanged
Defaults to `"hide"`.
Fixes #12643
2022-03-29 17:48:13 -07:00
Max Schmitt
c8cc62a2e6
chore: add link validation for docs ( #13047 )
2022-03-25 19:30:45 +01:00
Andrey Lushnikov
42765804bc
chore: add "allow" as a default value for animations. ( #12663 )
2022-03-10 17:15:36 -08:00
Andrey Lushnikov
49e66c7f08
feat(screenshot): introduce new "fonts" option for screenshots ( #12661 )
...
This option will wait for webfonts to load before taking screenshots.
2022-03-10 16:54:36 -08:00
Dmitry Gozman
a388bb2302
feat(screenshot): size:'css'|'device' option ( #12634 )
...
With this experimental option, screenshot dimensions are in CSS pixels,
not physical device pixels, effectively ignoring the device scale factor.
2022-03-10 13:07:10 -08:00
Yury Semikhatsky
79c8746fd2
docs: add name for screenshot animations option ( #12601 )
2022-03-08 16:02:31 -08:00
Andrey Lushnikov
4953fc4845
chore: introduce toHaveScreenshot configuration options ( #12507 )
...
References https://github.com/microsoft/playwright/issues/12441
2022-03-04 17:30:43 -08:00
Andrey Lushnikov
b45c788a33
fix(disable-animations): rename boolean to enum ( #12503 )
...
Enums are more flexible in the long run since they let us easily
extend API.
References #12441
2022-03-04 11:02:59 -08:00
Andrey Lushnikov
279e579097
chore: address pixelCount and pixelRatio review comments ( #12501 )
...
- documentation fixes
- rename pixelCount to maxDiffPixels
- rename pixelRatio to maxDiffPixelRatio
2022-03-03 23:17:31 -08:00
Yury Semikhatsky
a413c0f94c
docs: restore assertions timeout option in js ( #12467 )
2022-03-02 12:43:16 -08:00
Andrey Lushnikov
396d920145
feat(test-runner): implement expect(pageOrLocator).toHaveScreenshot ( #12242 )
...
Fixes #9938
2022-02-28 12:25:59 -08:00
Max Schmitt
768242db12
docs(dotnet): enable web-first assertions ( #12113 )
2022-02-21 14:01:53 +01:00
Andrey Lushnikov
363b8a6970
feat: support mask option in screenshot methods ( #12072 )
...
Fixes https://github.com/microsoft/playwright/issues/10162
2022-02-15 07:05:05 -08:00
Andrey Lushnikov
3c88d4126c
docs: move common screenshot options to params.md ( #12008 )
2022-02-10 12:31:17 -08:00
Dmitry Gozman
f587a43932
feat(locator): "has" option ( #11411 )
...
This introduces `locator('div', { has: locator })` syntax that matches elements containing other elements.
Can be used together with `hasText`.
Internally, has selector engine takes an inner selector escaped with double-quotes:
`div >> has="li >> span >> text=Foo" >> span`.
2022-02-02 16:55:50 -08:00
Andrey Lushnikov
2a0930c7a4
docs: clarification about trailing slash in docs ( #11326 )
...
Fixes #10557
2022-01-11 07:50:58 -08:00
Pavel Feldman
04e82ce71c
feat(api): make withText an option ( #10922 )
2021-12-14 15:37:31 -08:00
Pavel Feldman
7765131a14
feat(acceptDownload): revert acceptDownload ( #10709 )
2021-12-06 09:25:24 -08:00
Max Schmitt
af28a779be
docs: migrate JS assertions over to Java/Python assertions ( #10431 )
2021-11-24 21:58:35 +01:00
Yury Semikhatsky
9fed8a9344
docs(api): redo request API for java ( #10449 )
2021-11-19 16:40:35 -08:00
Yury Semikhatsky
565ac910e7
docs(api): expose request API in java ( #10331 )
2021-11-15 14:54:07 -08:00
Yury Semikhatsky
c30447216d
docs(fetch): typo in comment ( #10160 )
2021-11-09 14:00:58 -08:00
Yury Semikhatsky
13cc266b37
feat: add "commit" to possible waitUntil options ( #9892 )
2021-11-01 17:12:19 -07:00
Yury Semikhatsky
9eadbf9b81
docs(api): add locator assertions for java ( #9723 )
2021-10-22 16:56:58 -07:00
Dmitry Gozman
bb013d14c0
docs: minor changes in apirequest ( #9507 )
2021-10-14 09:48:53 -07:00
Yury Semikhatsky
6c18f1a6f0
feat(fetch): accept numeric and bool params ( #9345 )
2021-10-08 09:23:59 -07:00
Yury Semikhatsky
51490a82e1
feat(fetch): add helper methods for put, patch, head, delete ( #9374 )
2021-10-07 12:42:26 -07:00
Yury Semikhatsky
ab879fecd6
fix(api): make storageState option type same as context.storageState ( #9333 )
2021-10-06 09:02:41 -07:00
Yury Semikhatsky
235eaca34a
fix(fetch): use data, form and multipart for different post data ( #9248 )
2021-10-01 12:11:33 -07:00
Yury Semikhatsky
4e372dccb5
feat(fetch): import/export storageState ( #9244 )
2021-09-30 14:14:29 -07:00
Yury Semikhatsky
3c51f7d992
docs: improve ignorehttpserrors description ( #9081 )
2021-09-22 11:03:39 -07:00
Yury Semikhatsky
d3c71cc207
docs: clarify waitForURL(string) behavior ( #8952 )
2021-09-17 10:34:49 +02:00
Pavel Feldman
6e97ac300c
Revert "docs: add waitForSelectorHidden ( #8632 )" ( #8781 )
2021-09-08 14:26:52 -07:00
Max Schmitt
25c8fc4229
docs: add waitForSelectorHidden ( #8632 )
2021-09-08 10:53:47 +02:00
Max Schmitt
e7d4d61442
feat: add forced-colors media query emulation ( #6903 )
2021-09-03 21:48:06 +02:00
Anže Vodovnik
119fcdf8be
fix: alias reserved dotnet keyword ( #8589 )
2021-09-02 12:06:31 +02:00
Pavel Feldman
e574f4b7fd
feat(api): introduce setChecked convenience method ( #8525 )
2021-08-29 20:00:40 -07:00
Yury Semikhatsky
434d07e711
docs: clarify download lifetime when downloadsPath is specified ( #8227 )
2021-08-19 13:34:17 -07:00
Pavel Feldman
6ef76e333e
feat(strict): add context-level selector strictness ( #8290 )
2021-08-18 12:51:45 -07:00
Joel Einbinder
4fabe5e6e4
feat(drag): sourcePosition and targetPosition ( #7803 )
2021-08-03 13:12:34 -04:00
Pavel Feldman
0a6ae11da1
feat(strict): introduce strict mode ( #7851 )
2021-07-26 22:00:23 -07:00
Pavel Feldman
827fb80465
feat(locator): implement element locators ( #7808 )
2021-07-22 21:37:20 -07:00
Joel Einbinder
56ada374df
feat(dragAndDrop): page.dragAndDrop ( #6910 )
2021-07-19 12:42:55 -05:00
Max Schmitt
371aa3dab2
feat: add browser.newContext({ baseUrl }) ( #7409 )
2021-07-06 21:16:37 +02:00