Dmitry Gozman
f5b4e499fb
fix(locators): frameLocator().nth serialized correctly ( #18819 )
...
Fixes #18798 .
2022-11-15 10:50:46 -08:00
Pavel Feldman
5c530154f9
chore(electron): filter test args out ( #18822 )
2022-11-15 10:48:24 -08:00
Max Schmitt
4b352acdce
test: fix webview2 & msedge tests ( #18823 )
2022-11-15 08:44:26 -10:00
Pavel Feldman
98513c3737
test: fix video channel tests ( #18807 )
2022-11-14 22:20:00 -08:00
Pavel Feldman
dbf3fc5089
fix(electron): stall node while browser is starting ( #18804 )
...
Fixes https://github.com/microsoft/playwright/issues/17765
2022-11-14 22:01:54 -08:00
Yury Semikhatsky
6deba5dc21
chore: hide TestProject.setup and TestInfo.storage ( #18800 )
2022-11-14 17:03:01 -08:00
Pavel Feldman
59418aa6f3
chore: ignore untrusted clicks when recording ( #18796 )
...
Fixes https://github.com/microsoft/playwright/issues/18776
2022-11-14 15:16:25 -08: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
Pavel Feldman
2841b0b3dc
fix: address ff test failure with new event mode
2022-11-10 17:31:43 -08:00
Andrey Lushnikov
f3a99fdd69
chore: address API review comments for the snapshotPathTemplate
( #18716 )
...
This patch:
- updates documentation to lead users from `TestConfig.snapshotDir` and
`testInfo.snapshotSuffix` to `TestConfig.snapshotPathTemplate` as a
better and more flexible alternative.
- drops `{snapshotSuffix}` from documentation
- stops using `snapshotSuffix = ''` in our own tests and switches us
to the `snapshotPathTemplate`.
- adds `{testName}` token.
2022-11-10 17:23:57 -08:00
Andrey Lushnikov
db826c9c8c
chore: drive-by fixes for the snapshotPathTemplate
( #18715 )
...
- Use `snapshotPathTemplate` for docker screenshots in html-reporter
- Mark the snapshot path template test as slow since it re-spawns
worker for each project.
- Fix docker smoke tests
2022-11-10 15:50:13 -08:00
Max Schmitt
56d7d47d43
fix(codegen): make select work with size attribute ( #18712 )
...
Fixes https://github.com/microsoft/playwright/issues/18711
2022-11-10 15:06:53 -08:00
Dmitry Gozman
194abc35cd
Revert #18561 "feat(test runner): test.reset() to reset options to default/config value" ( #18704 )
...
This reverts commit 6fef227f43
.
Not shipping in 1.28.
2022-11-10 14:45:05 -08:00
Dmitry Gozman
7c80b77c57
feat(clear): remove clear()
methods from all classes except Locator
( #18703 )
...
The preferred way is to use the locator, so we should not encourage the
use of `ElementHandle` or `Page` in the new APIs.
2022-11-10 12:29:14 -08:00
Pavel Feldman
ca2e7ef199
chore: report paused signal to the debug controller clients ( #18701 )
2022-11-10 12:15:29 -08:00
Pavel Feldman
c25e67a0e7
chore: conditionally dispatch network events ( #18687 )
2022-11-09 21:10:57 -08:00
Dmitry Gozman
cafa558845
fix(codegen): update priorites in selector generator ( #18688 )
...
- prefer `role=checkbox` over `input[type=checkbox]`
- prefer `#id` over `input[type=checkbox]` and `role=checkbox`
- prefer `text=foo` over `internal:has-text=foo`
- ignore `none` and `presentation` roles
- remove non-strict support
2022-11-09 17:22:13 -08:00
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
Andrey Lushnikov
9bcb28f25a
Revert "feat: send SIGTERM to webserver before SIGKILL'ing it. ( #18220 )" ( #18661 )
...
This reverts commit c63a0b536d
.
Reason: https://github.com/microsoft/playwright/pull/18564
2022-11-09 09:18:33 -08:00
Dmitry Gozman
a7f1c8cb65
fix(codegen): fix csharp options syntax ( #18662 )
2022-11-08 21:48:01 -08:00
Dmitry Gozman
ef1b68a998
feat(locators): support frame locators in asLocator
( #18653 )
...
Drive-by: change `true` to `True` in python.
References #18524 .
2022-11-08 17:08:08 -08:00
Pavel Feldman
0355d8618f
chore: use provided value for the generated test id ( #18631 )
2022-11-08 12:04:43 -08:00
Dmitry Gozman
05b623e6b0
feat(locators): asLocator supports internal:has= ( #18625 )
...
The following snippet:
```js
rowLocator
.filter({ hasText: 'John' })
.filter({ has: page.getByRole('button', { name: 'Say hello' }) })
```
is shown in the logs:
```log
pw:api waiting for getByRole('listitem').filter({ hasText: 'John' }).filter({ has: getByRole('button', { name: 'Say hello' }) })
```
2022-11-08 08:47:02 -08:00
sand4rt
712ce0dce9
test(ct): vue cli router ( #18603 )
2022-11-08 08:40:29 -08:00
sand4rt
ccf9c8d487
test(ct): react router ( #18602 )
2022-11-08 08:40:06 -08:00
sand4rt
84529595cc
test(ct): react vite router ( #18601 )
2022-11-08 08:39:48 -08:00
Yury Semikhatsky
d5494edf71
feat(runner): TestOptions.storageStateName ( #18587 )
2022-11-07 16:27:38 -08:00
Dmitry Gozman
28d3f48a65
test: gardening ( #18623 )
...
- Separate worker for some Android tests.
- Use png comparator for some screenshots tests instead of buffer
equality.
- Skip drag&drop tests on Android.
- Various timeout fixes.
2022-11-07 15:35:21 -08:00
Dmitry Gozman
9172a2ca5a
test: use strict png comparator in tests ( #18622 )
2022-11-07 13:32:46 -08:00
Dmitry Gozman
6a65a43e9a
chore: use consistent asLocator() in all logs ( #18586 )
...
References #18524 .
2022-11-04 15:19:16 -07:00
Yury Semikhatsky
25dc0bfacb
feat(runner): change storage fixture to TestInfo.storage() ( #18584 )
2022-11-04 14:28:25 -07:00
Yury Semikhatsky
a9c15a25f8
test: storageState from config key ( #18581 )
2022-11-04 13:10:33 -07:00
Dmitry Gozman
3a24e88e61
test: enable "should not crash when force-clicking hidden input" on chromium ( #18576 )
...
Fixed by the latest roll.
2022-11-04 10:39:51 -07:00
Dmitry Gozman
6fef227f43
feat(test runner): test.reset() to reset options to default/config value ( #18561 )
2022-11-04 09:03:29 -07:00
Dmitry Gozman
227f47effb
feat(firefox): roll to 1364 and 1367, rebase page-drag.spec ( #18559 )
2022-11-04 08:53:50 -07:00
Pavel Feldman
3bc9e07daf
chore: parse locators strictly ( #18553 )
2022-11-03 15:17:08 -07:00
Yury Semikhatsky
c8cd07594c
feat(runner): initialize context.storageState from storage entry ( #18549 )
2022-11-03 14:20:39 -07:00
Xiaoxing Ye
9338355e47
feat(testinfo): add name to attachment output name ( #18440 )
...
Per discussion in #12950 , adding sanitized name to the output filename
prefix. This can make debugging easier, and the filename structure more
human friendly.
2022-11-03 13:54:51 -07:00
Andrey Lushnikov
8538f61a72
feat(containers): implement global network tethering for playwright server ( #17719 )
...
This patch implements a new mode of network tethering for Playwright
server & its clients.
With this patch:
- playwright server could be launched with the
`--browser-proxy-mode=tether` flag to engage in the new mode
- a new type of client, "Network Tethering Client" can connect to the
server to provide network traffic to the browsers
- all clients that connect to the server with the `x-playwright-proxy:
*` header will get traffic from the "Network Tethering Client"
This patch also adds an environment variable
`PW_OWNED_BY_TETHER_CLIENT`. With this env, playwright server will
auto-close when the network tethering client disconnects. It will also
auto-close if the network client does not connect to the server in the
first 10 seconds of the server existence. This way we can ensure that
`npx playwright docker start` blocks terminal & controls the lifetime of
the started container.
2022-11-03 13:47:51 -07:00
Pavel Feldman
17c8554255
chore(recorder): explore using codemirror ( #18529 )
2022-11-03 09:55:23 -07:00
Yury Semikhatsky
45aa82242d
feat(runner): storage fixture ( #18522 )
2022-11-02 20:22:35 -07:00
Dmitry Gozman
20f2e0049c
test: unflake codegen tests waiting for highlight ( #18518 )
...
Clear existing highlights to avoid resolving with the old highlight
value.
2022-11-02 17:00:33 -07:00
Yury Semikhatsky
1d2fc1e963
feat(runner): project.setup ( #18486 )
2022-11-01 23:44:30 -07:00
Pavel Feldman
67c9624924
chore: send structured codegen info to the debug controller ( #18491 )
2022-11-01 18:02:14 -07:00
Pavel Feldman
2183d9e9a2
chore: use codemirror for editor ( #18482 )
2022-11-01 15:04:30 -07:00
sand4rt
4896b22616
chore(ct): bump vue to v2.7.13 ( #18428 )
2022-11-01 14:17:43 -07:00
Max Schmitt
57c2ed91d9
chore: fix language binding based install message ( #18480 )
2022-11-01 13:46:17 -07:00
Yury Semikhatsky
7337dd4e28
chore: revert project.{stage,run} ( #18462 )
2022-10-31 14:04:24 -07:00
sand4rt
fbfec18678
fix(ct): vite base url ( #17767 )
2022-10-31 12:58:07 -07:00
Pavel Feldman
2c3fa1b1ff
chore: add explore locator parser ( #18429 )
2022-10-31 12:55:35 -07:00
Playwright Service
2d07c10888
feat(webkit): roll to r1735 ( #18419 )
2022-10-31 12:54:12 -07:00
Dmitry Gozman
e725293586
test: print stdout/stderr in signals.spec ( #18456 )
2022-10-31 12:45:18 -07:00
Pavel Feldman
a7f5f2d7a1
chore: allow not overriding media when creating context ( #18413 )
2022-10-31 09:09:52 -07:00
sand4rt
fabe42dc28
chore(ct): bump vite to v3.2.1 ( #18427 )
2022-10-31 08:58:11 -07:00
sand4rt
afca134c9f
feat(ct): vue3 ts api component as slot ( #18425 )
2022-10-31 08:57:21 -07:00
sand4rt
01d0ff7316
core(ct): rename tests from rerender to update ( #18374 )
2022-10-31 08:55:29 -07:00
Dmitry Gozman
e37757b44b
test: unflake some wheel tests ( #18412 )
2022-10-28 13:35:09 -07:00
Dmitry Gozman
90cf2b87b4
test: clicking hidden input should not crash/timeout ( #18410 )
...
References #18183 .
2022-10-28 11:13:24 -07:00
Dmitry Gozman
2d3b2a0768
feat(test runner): test.describe.configure({ retries, timeout }) ( #18388 )
...
References #10825 .
2022-10-27 15:53:27 -07:00
Pavel Feldman
3e112193a6
test: fix debug controller tests on firefox ( #18361 )
2022-10-27 09:19:55 -07:00
Yury Semikhatsky
12fdd3336e
test: navigator.storage.getDirectory() across browsers ( #18305 )
2022-10-26 15:41:36 -07:00
Pavel Feldman
db456a020c
chore: do not point to node_modules in code frames ( #18358 )
...
Fixes https://github.com/microsoft/playwright/issues/18330
2022-10-26 15:18:31 -07:00
Pavel Feldman
1505a952fe
chore: make handle beforeunload when reusing the context ( #18357 )
...
Fixes: https://github.com/microsoft/playwright/issues/17903
2022-10-26 15:17:40 -07:00
Max Schmitt
e25537f941
feat(android): add AndroidDevice.close event ( #18306 )
2022-10-25 18:18:14 -07:00
Max Schmitt
ffc47271f2
fix(junit): escape null control character ( #18325 )
...
Fixes https://github.com/microsoft/playwright/issues/18322
2022-10-25 14:39:16 -07:00
Dmitry Gozman
0653692a5b
fix(selectors): :scope
combined with other css should work ( #18324 )
...
Previously, we considered root when selector has `:scope` modifier, but
did not actually match it with other css specifiers, like in
`:scope.selected`.
Fixes #17824 .
2022-10-25 14:31:39 -07:00
Max Schmitt
721ae2b3ed
fix: make reoccurring networkidle work ( #18323 )
...
Fixes https://github.com/microsoft/playwright/issues/18283
Signed-off-by: Max Schmitt <max@schmitt.mx>
2022-10-25 13:35:18 -07:00
Jean-François Greffier
0fe1998c72
feat(api): add clear() ( #18296 )
...
Add `clear()` method as a convenience shortcut for `fill('')`.
Implemented for AndroidDevice, ElementHandle, Frame, Locator and Page.
Fixes https://github.com/microsoft/playwright/issues/14041
2022-10-25 12:56:11 -07:00
Dmitry Gozman
caa9c6a597
fix(test runner): make sure soft expect error does not mask a timeout flag ( #18321 )
...
We have to reliably know whether test timed out or not, and soft expect
error could have marked it with `status=failed` but it would still time
out. Now we have a separate `_didTimeout` flag for this.
Fixes #18023 .
2022-10-25 12:34:15 -07:00
Pavel Feldman
37250cde17
chore: switch to the new debug controller harness ( #18308 )
2022-10-25 09:55:20 -07:00
Pavel Feldman
d819f97f40
test: clean up connect options set for debug controller ( #18317 )
2022-10-25 09:03:04 -07:00
Pavel Feldman
d8ec7cba47
chore: don't generate new lines in codegen ( #18309 )
2022-10-25 09:02:06 -07:00
Dmitry Gozman
3cd64e1449
fix(check): support all ARIA roles that could be aria-checked ( #18304 )
...
Fixes #18193 .
2022-10-25 06:11:11 -07:00
Dmitry Gozman
329b3eadb4
feat: locator.blur() ( #18303 )
...
Note this is only available on Locator. Fixes #10724 .
2022-10-25 06:10:40 -07:00
Max Schmitt
805312b722
feat(android): add Android.{launchServer,connect} ( #18263 )
...
Fixes https://github.com/microsoft/playwright/issues/17538
2022-10-24 17:23:11 -07:00
Pavel Feldman
d3948d1308
chore: enable debug controller testing ( #18270 )
2022-10-24 16:19:58 -07:00
Dmitry Gozman
9a684d39ab
feat(firefox): prepare to fission roll ( #18302 )
...
- Handle `Runtime.executionContextsCleared` event.
- Skip one auto-waiting test, because navigations now happen
asynchronously.
2022-10-24 16:03:56 -07:00
Pavel Feldman
ab78865a8d
chore: render steps in list reporter ( #18269 )
2022-10-24 15:54:53 -07:00
Pavel Feldman
3f850d27e9
fix(highlight): fix the testing harness to be real ( #18294 )
2022-10-24 15:01:48 -07:00
Max Schmitt
be67189a54
fix(fetch): throw on unexpected end of file brotli requests ( #18223 )
...
https://github.com/microsoft/playwright/issues/18190
2022-10-24 12:51:45 -07:00
sand4rt
3460f01b47
test(ct): component as slot ( #18090 )
2022-10-24 12:31:35 -07:00
Dmitry Gozman
48c44f2c78
fix(selectors): hasText and getByText exact match should consider full text ( #18260 )
...
Fixes #18259 .
2022-10-21 16:29:45 -07:00
Andrey Lushnikov
c63a0b536d
feat: send SIGTERM to webserver before SIGKILL'ing it. ( #18220 )
...
We now will send `SIGTERM` to the webserver and wait for the `timeout`
before sending `SIGKILL` to it.
Fixes #18209
2022-10-21 08:55:06 -07:00
sand4rt
951cba8142
chore(ct): type check ( #18208 )
2022-10-20 13:33:25 -07:00
Pavel Feldman
fb9555fb5d
fix(ts): resolve .js to .ts in non-ESM mode too ( #18219 )
...
Fixes https://github.com/microsoft/playwright/issues/18077
2022-10-20 12:21:22 -07:00
Dmitry Gozman
5ed552838e
test: skip "should not include buffers in the trace" on non-default mode ( #18215 )
2022-10-20 10:19:42 -07:00
sand4rt
4ed2a01d9c
core(ct): import paths ( #18131 )
2022-10-19 19:41:21 -07:00
sand4rt
d8b037c559
feat(ct): solid update ( #18074 )
...
closes: https://github.com/microsoft/playwright/issues/15057
closes: https://github.com/microsoft/playwright/issues/15919
Signed-off-by: sand4rt <info@mesander.com>
2022-10-19 19:39:50 -07:00
Pavel Feldman
84daeafb3a
chore: use internal locator for role ( #18187 )
2022-10-19 19:38:47 -07:00
Pavel Feldman
ad9729f246
chore: respect tsconfig paths in js files ( #18191 )
...
Fixes: https://github.com/microsoft/playwright/issues/17804
2022-10-19 19:38:14 -07:00
Max Schmitt
af38449f42
fix(pwtest): fix focused line with dirname specified ( #18189 )
2022-10-19 15:05:59 -07:00
Dmitry Gozman
852a5c234b
feat(install): connection timeout ( #18161 )
...
- `PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT` for custom timeout.
- Bumped default timeout from 10s to 30s.
- Inlined `download.ts` to avoid extra plumbing.
- Removed optional arguments - we always pass them.
- Updated installation docs.
Fixes #18156 .
2022-10-19 13:06:35 -07:00
Dmitry Gozman
9fe72a1da8
fix(test runner): remove unused type imports during transform ( #18157 )
...
Fixes #18117 .
2022-10-19 13:06:11 -07:00
Yury Semikhatsky
69092b153a
chore(codegen): do not generate waitForURL ( #18167 )
...
Fixes https://github.com/microsoft/playwright/issues/17179
2022-10-19 11:26:19 -07:00
Pavel Feldman
1b541c9932
chore: render typed locators in the trace viewer ( #18166 )
2022-10-18 19:23:40 -07:00
Yury Semikhatsky
11eb719d13
feat(runner): project run: "always" ( #18160 )
...
Projects marked with `run: 'always'` are non shard-able and run after
failures.
2022-10-18 17:18:45 -07:00
Pavel Feldman
7910f8a165
Revert "chore(ct): type checking" ( #18165 )
...
Reverts microsoft/playwright#17931
type checking fails on the bots
2022-10-18 17:00:17 -07:00
Pavel Feldman
739b64a09a
chore: render typed locators in the recorder ( #18162 )
2022-10-18 16:39:58 -07:00
Pavel Feldman
304a4ee8ec
chore: migrate to the internal:text selector ( #18135 )
2022-10-18 13:09:54 -07:00
sand4rt
e76adafc5b
feat(ct): vue3 html as slot ( #18007 )
2022-10-18 13:06:36 -07:00