Commit graph

497 commits

Author SHA1 Message Date
Joel Einbinder d70e37de80
feat: locator.dragTo (#10287) 2021-11-22 20:27:26 +01:00
Joel Einbinder 06ab3c0fda
feat: consider fieldset and aria-disabled when checking if an element is enabled (#9927)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-22 20:25:06 +01:00
Dmitry Gozman e647f0420c
docs: add more references to TestInfo.retry (#10472) 2021-11-22 10:06:20 -08:00
Max Schmitt 14471fd79f
chore: fix CLI --help when used in driver (#10412) 2021-11-22 18:34:22 +01:00
github-actions[bot] 2290232339
feat(chromium): roll to r943346 (#10452)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-21 00:43:30 +01:00
Yury Semikhatsky 9c23a78c32
chore: throw instead of returning error from fetch (#10451) 2021-11-19 20:32:29 -08:00
Dmitry Gozman fde2f6a77f
docs: separate doc for test timeouts (#10448) 2021-11-19 17:06:46 -08:00
Pavel Feldman 103b6121b8
fix(trace-viewer): provide hints on how to open trace statically (#10450) 2021-11-19 16:29:27 -08:00
Pavel Feldman a73e6bbd0e
chore: drop wrapApiCall (2) (#10445) 2021-11-19 16:28:11 -08:00
Dmitry Gozman 4eaeb3b59c
docs: explain that beforeAll/afterAll run again in the new worker process (#10446) 2021-11-19 13:47:30 -08:00
Dmitry Gozman 0302e759df
feat(test runner): allow top-level test.fixme similar to test.skip (#10250)
```js
test.fixme('my test name', () => {});
```
2021-11-19 11:40:40 -08:00
Pavel Feldman 2a98800ac0
chore: drop wrapApiCall (1) (#10428) 2021-11-19 10:12:48 -08:00
Max Schmitt e87b56a2e5
chore: verify supported Node.js version during runtime (#10406) 2021-11-19 19:05:17 +01:00
Max Schmitt b8b0d7139c
chore: bump ESLint to version 8 (#10433) 2021-11-19 18:48:33 +01:00
github-actions[bot] e76edef3e2
feat(webkit): roll to r1579 (#10409)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-19 11:11:27 +01:00
Pavel Feldman b302152789
chore(zones): prepare to remove wrapApiCall, introduce zones (#10427) 2021-11-18 22:30:09 -08:00
Dmitry Gozman d9f849fb14
feat(test runner): replace declare/define with "options" (#10293)
1. Fixtures defined in test.extend() can now have `{ option: true }` configuration that makes them overridable in the config. Options support all other properties of fixtures - value/function, scope, auto.
```
const test = base.extend<MyOptions>({
  foo: ['default', { option: true }],
});
```

2. test.declare() and project.define are removed.

3. project.use applies overrides to default option values and nothing else. Any test.extend() and test.use() calls take priority over config options.

Required user changes: if someone used to define fixture options with test.extend(), overriding them in config will stop working. The solution is to add `{ option: true }`.

```
// Old code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: 123,
  myFixture: ({ myOption }, use) => use(2 * myOption),
});

// New code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: [123, { option: true }],
  myFixture: ({ myOption }, use) => use(2 * myOption),
});
```
2021-11-18 15:45:52 -08:00
divdavem 17a2454226
feat(cli): add --proxy-bypass option (#10181) 2021-11-18 15:41:16 -08:00
Dmitry Gozman 8f43f4c98f
feat(serial): better errors from beforeAll (#10419)
When beforeAll hook times out or fails with an exception, we now
close the context and show a nice error.
2021-11-18 14:36:55 -08:00
github-actions[bot] 24cc266de0
feat(chromium): roll to r941965 (#10372)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-18 18:46:44 +01:00
Yury Semikhatsky 0ca10da166
fix: compute file field mime type on the server (#10394) 2021-11-17 18:12:26 -08:00
Dmitry Gozman bd93fc499f
fix(html reporter): show missing attachments as warnings (#10400) 2021-11-17 18:03:13 -08:00
Dmitry Gozman ce2c0c59a7
feat(expect): show expect timeout in the error message (#10388)
Makes it easier to understand that expect does indeed have a separate timeout.

```
    Error: expect(received).toHaveCount(expected) // deep equality

    Expected: 0
    Received: 1

    Call log:
      - expect.toHaveCount with timeout 500ms
      - waiting for selector "span"
      -   selector resolved to 1 element
      -   unexpected value "1"
      -   selector resolved to 1 element
      -   unexpected value "1"
      -   selector resolved to 1 element
      -   unexpected value "1"
```
2021-11-17 17:28:30 -08:00
Max Schmitt 0781d0303b
docs(python): enable web-first assertions (#10390) 2021-11-18 00:46:30 +01:00
Pavel Feldman 70ede0d987
chore: use channel traits (#10389) 2021-11-17 15:26:01 -08:00
Yury Semikhatsky 7746cb52a7
fix: do not send Fetch.continueRequest twice for auth requests (#10382) 2021-11-17 11:42:06 -08:00
Andrey Lushnikov 93dbcefa46
fix: disable 'AcceptCHFrame' chromium field trial (#10380)
References #10376
2021-11-17 10:41:53 -08:00
Yury Semikhatsky 08a7470b0a
fix: API response to string (#10364) 2021-11-16 15:42:35 -08:00
Andrey Lushnikov 82002b2803
fix: fix proper-lock-file configuration (#10356)
Turns out we were using wrong formula; with the config we had in place,
proper-lock-file would give up to aquire lock after 49 seconds of
waiting.

With the proper configuration, we'll keep re-trying for 10 minutes.

Fixes #10354
2021-11-16 13:49:01 -08:00
Pavel Feldman 9485e62a00
chore(trace-viewer): only show source tab when soureces are includes (#10338) 2021-11-15 23:37:39 -08:00
Dmitry Gozman 638ebd6dd6
fix(test runner): do not validate fixtures in tests/hooks that are never run (#10328) 2021-11-15 13:17:26 -08:00
Pavel Feldman 1c9c0dc2e6
feat(webkit): roll to r1578 (#10323) 2021-11-15 08:43:51 -08:00
github-actions[bot] 5ad6cd2796
feat(firefox): roll to r1306 (#10297)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-15 16:55:06 +01:00
github-actions[bot] 3b2b8e2f5e
feat(firefox-beta): roll to r1305 (#10298)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-15 16:54:53 +01:00
Max Schmitt 65a9037461
chore(trace-viewer): add missing uploadedTraceName to the useEffect dependencies (#10294)
Fixes ESLint warning
2021-11-13 09:36:36 +01:00
Dmitry Gozman 6a46711347
fix(chromium): race between loadingFailed and requestPaused (#10289) 2021-11-12 19:06:53 -08:00
Pavel Feldman b0723c0621
fix(webkit): disable accelerated compositing on windows (#10264) 2021-11-12 08:50:25 -08:00
Dmitry Gozman 4bb123d4b7
fix(test runner): route more errors to reporter (#10263)
For example, top-level errors in files or global setup issues.
2021-11-12 06:47:41 -08:00
Andrey Lushnikov bd1ce399e3
fix(html-report): fix command to open HTML report (#10231) 2021-11-12 00:12:23 -08:00
github-actions[bot] 7048ecdc6f
feat(firefox): roll to r1305 (#10267)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 23:59:54 -08:00
github-actions[bot] 840db7b6e0
feat(firefox-beta): roll to r1304 (#10265)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 17:44:30 -08:00
Pavel Feldman 8dcd77270f
fix(sigint): remove sigint handler early (#10266) 2021-11-11 17:14:36 -08:00
Dmitry Gozman 7eec66d0f9
chore(test runner): route runner errors through Reporter.onError (#10257) 2021-11-11 16:48:08 -08:00
github-actions[bot] b76daf361d
feat(webkit): roll to r1577 (#10255)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-11 15:37:05 -08:00
Max Schmitt 24cfcf867e
chore: create-playwright config nits & test-runner intro docs (#10253) 2021-11-11 22:45:07 +01:00
Dmitry Gozman f38f611478
chore: add npm run lint-tests (#10252) 2021-11-11 13:27:50 -08:00
Dmitry Gozman 4c93417e8a
fix(github reporter): handle global onError (#10256) 2021-11-11 13:25:38 -08:00
Max Schmitt 8fe3ea7972
chore: add trace viewer file upload error handling (#10243) 2021-11-11 21:31:19 +01:00
Yury Semikhatsky fbb3c88f3c
fix(fetch): smarter JSON.stringify for application/json requests (#10245) 2021-11-11 11:12:24 -08:00
Max Schmitt e3ba3eab11
chore: create-playwright #10221 follow-up (#10247) 2021-11-11 19:26:31 +01:00
Max Schmitt 3a64da7a54
fix: do not show taskkill.exe output (#10244) 2021-11-11 18:32:22 +01:00
Max Schmitt 6e5fe5cd89
chore: create-playwright enhancements (#10221) 2021-11-11 18:29:57 +01:00
Max Schmitt ac629afd46
chore: fix API name capitalisation with APIRequestContext (#10240) 2021-11-11 08:46:17 -08:00
Dmitry Gozman 9622704a8a
fix(test runner): update TestInfo.duration before running afterEach hooks (#10228) 2021-11-10 16:02:27 -08:00
Dmitry Gozman 9ec3e7cd52
fix(click): account for detached elements and iframe overlays (#10206) 2021-11-10 12:14:06 -08:00
Pavel Feldman 1e38ec5fa4
docs(element-handle): discourage the element handle use (#10220) 2021-11-10 11:30:25 -08:00
Pavel Feldman 03fee2f593
feat(trace-viewer): add metainfo tab (#10205) 2021-11-09 22:13:51 -08:00
Andrey Lushnikov b2af576796
chore: cut v1.17 (#10203) 2021-11-09 17:56:26 -08:00
github-actions[bot] c8b65ac677
feat(webkit): roll to r1576 (#10199)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-09 15:54:59 -08:00
Pavel Feldman 0d0f1690cd
fix(trace-viewer): do not rely upon request mode, it is inconsistent (#10198) 2021-11-09 15:12:37 -08:00
Dmitry Gozman 75efeb1e08
fix: resolve ip using grid/api/testsession endpoint (#10196)
For Selenium 4, we use se:cdp ws proxy, pointing it to the hub url.
For Selenium 3, we use grid api to try and get the target node ip.
2021-11-09 14:41:13 -08:00
Pavel Feldman 4e90eb9406
api(frame-locator): allow nth, first, last (#10195) 2021-11-09 14:14:20 -08:00
Max Schmitt d25b0f70bc
chore: api testing test nits (#10180) 2021-11-09 14:11:42 -08:00
Yury Semikhatsky c30447216d
docs(fetch): typo in comment (#10160) 2021-11-09 14:00:58 -08:00
Andrey Lushnikov d34f9972ab
feat: proper launch doctor for WebKit on Arm64 Ubuntu 20.04 (#10172)
This patch:
- consolidates all distribution-specific information in a single
  location
- updates list of required dependencies for WebKit on Arb64 Ubuntu 20.04
2021-11-09 10:55:13 -08:00
Pavel Feldman 3743fe1ef5
feat(trace-viewer): make upload button nice, add disclaimer (#10163) 2021-11-09 07:40:21 -08:00
github-actions[bot] 5b604acedb
feat(chromium): roll to r939194 (#10165)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-08 20:05:39 -08:00
Pavel Feldman 806b5706a5
fix(trace-viewer): redirect, time and missing snapshot bugfixes (#10055) 2021-11-08 18:03:10 -08:00
Pavel Feldman 7b64161a37
feat(test-runner): allow specifying fine-grained trace options (#10147) 2021-11-08 15:39:58 -08:00
Andrey Lushnikov 8582a19e6b
fix(trace): non-negative time in call tab (#10153)
Fixes #10129
2021-11-08 15:30:36 -08:00
Dmitry Gozman 3cc839e013
fix(route): catch all Route methods when page closes (#10140)
This fixes a common scenario where you setup a route,
and the page closes (e.g. test ends) while we are aborting/continuing
some requests that are not instrumental to the test itself.
2021-11-08 15:13:15 -08:00
Andrey Lushnikov 4b14c466d4
feat: download webkit arm64 build for ubuntu 20.04 (#10151) 2021-11-08 14:56:08 -08:00
Joel Einbinder 0cad0de3e3
fix(test runner): better error message when importing typescript from esmodule (#10061) 2021-11-08 16:25:40 -05:00
Dmitry Gozman 0a104bc500
docs: clarify that slow tests are about files (#10134) 2021-11-08 12:54:18 -08:00
Pavel Feldman 4553d76fce
api(frame-locator): introduce frame locators (#10102) 2021-11-08 09:58:24 -08:00
github-actions[bot] cc72299cbc
feat(chromium): roll to r938553 (#10112)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-07 17:50:03 +01:00
github-actions[bot] cf57f72c59
feat(firefox): roll to r1304 (#10106)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-06 12:12:09 -07:00
Andrey Lushnikov 51a7567907
codegen: use import instead of require for codegen tests (#10104) 2021-11-05 19:01:54 -07:00
Dmitry Gozman 61ff52704c
feat(input): perform hit target check during input (#9546)
This replaces previous `checkHitTarget` heuristic that took place before the action
with a new `setupHitTargetInterceptor` that works during the action:
- Before the action we set up capturing listeners on the window.
- During the action we ensure that event target is the element we expect to interact with.
- After the action we clear the listeners.

This should catch the "layout shift" issues where things move
between action point calculation and the actual action.

Possible issues:
- **Risk:** `{ trial: true }` might dispatch move events like `mousemove` or `pointerout`,
because we do actually move the mouse but prevent all other events.
- **Timing**: The timing of "hit target check" has moved, so this may affect different web pages
in different ways, for example expose more races. In this case, we should retry the click as before.
- **No risk**: There is still a possibility of mis-targeting with iframes shifting around,
because we only intercept in the target frame. This behavior does not change.

There is an opt-out environment variable PLAYWRIGHT_NO_LAYOUT_SHIFT_CHECK that reverts to previous behavior.
2021-11-05 17:31:28 -07:00
Andrey Lushnikov 8bf8f49746
feat: support Firefox for Ubuntu 20.04 arm64 download (#10100) 2021-11-05 17:02:48 -07:00
Pavel Feldman f3fd3ebc37
chore(frame-selector): add more tests, use frame logic in element handle (#10097) 2021-11-05 16:36:01 -07:00
github-actions[bot] d336f18166
feat(firefox-beta): roll to r1303 (#10065)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-05 12:33:20 -07:00
Pavel Feldman f19864890f
feat(iframe): make iframe selectors work w/ element handles (#10063) 2021-11-05 11:06:04 -07:00
Max Schmitt 84d2ee3929
chore: fix connectOverCDP on Windows when proxy is used (#10080) 2021-11-05 17:38:13 +01:00
Max Schmitt 95a5c5cb79
chore(create-playwright): make it Node.js 12 compatible (#10081) 2021-11-05 17:30:18 +01:00
Max Schmitt c5b19351f6
chore: rename Fetch Request/Response to API (#10087) 2021-11-05 16:27:49 +01:00
Max Schmitt ceedf45d4a
fix: support .mjs files with Playwright Inspector (#10043) 2021-11-05 12:28:52 +01:00
Dmitry Gozman 3c1aaa5338
fix(trace): do not call tracing.stopChunk() twice (#10054) 2021-11-04 21:08:42 -07:00
github-actions[bot] 8a6e4bd350
feat(firefox): roll to r1302 (#10062)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-04 16:12:59 -07:00
github-actions[bot] c6e0ecc38c
feat(firefox): roll to r1301 (#10058)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 14:50:36 -07:00
Pavel Feldman 78e99249a3
feat(frame-selector): intial implementation (#10018) 2021-11-04 13:28:35 -07:00
github-actions[bot] 9b4d9460eb
feat(chromium): roll to r936784 (#9986) 2021-11-04 12:35:31 -07:00
github-actions[bot] a1f5131501
feat(webkit): roll to r1572 (#10030)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 12:07:03 +01:00
Andrey Lushnikov 16b9ada8c0
chore: add playwright-report to gitignore created by scaffolding (#10028)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-03 17:12:52 -07:00
Yury Semikhatsky bce9a8187d
fix(fetch): post data for delete request (#10019) 2021-11-03 13:26:15 -07:00
Dmitry Gozman 3120f81629
fix(reporters): move Running X tests using Y workers to reporters (#10014) 2021-11-03 11:17:23 -07:00
Dmitry Gozman c373986ca0
fix(evaluate): reject all context operations when frame detaches (#9987) 2021-11-03 10:44:50 -07:00
Pavel Feldman 2ae2136810
chore: do not carry selector next to parsed selector (#10004) 2021-11-03 08:35:01 -07:00
Dmitry Gozman 9cebe60831
feat(reporters): augment non-stdio reporters with dot/line (#10003) 2021-11-03 08:25:16 -07:00
Andrey Lushnikov 2e1dcaf2ee
chore: fix race in grid server (#9999) 2021-11-02 18:01:15 -07:00