Commit graph

71 commits

Author SHA1 Message Date
Pavel Feldman 9ce8572c78
chore: don't run debugger on pause() (#11948) 2022-02-08 14:24:13 -08:00
Pavel Feldman dbd124d84b
chore: disable page.pause() when JS debugger is attached (#11926) 2022-02-07 19:21:58 -08:00
Dmitry Gozman 7912c515a3
fix(fixtures): account for default options being undefined (#11916) 2022-02-07 17:11:36 -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
Dmitry Gozman 687a16b848
feat(locator): introduce locator.page() getter (#11630) 2022-01-26 07:58:58 -08:00
Dmitry Gozman 800b813d4b
chore(test runner): prepare to per-fixture timeout (#11605)
This reworks DeadlineRunner to use exception to signal timeout. This way,
we'll be able to run fixtures against a shared deadline vs their own
deadline and still get an easy control-flow timeout handling.
2022-01-25 11:22:28 -08:00
Ross Wollman 64e7557fb9
fix: falsey behavior in route.continue, page.post, testInfo.attach (#11421)
In several of the Playwright APIs, falsey values were not handled correctly. This changeset adds tests (and some fixes):

- route.continue: If options.postData was the empty string, the continue failed to override the post data.
- page.post (application/json with options.data: false|''|0|null): Raw falsey values were getting dropped (i.e. you can't do the equivalent of curl --header application/json … -d 'false'). This has been fixed with most values across all browsers, but an additional fix is needed for 'null' which the channel serializer treats extra specially.
- testInfo.attach: This didn't get reported as an error when options.path was the empty string, but should have been.
#11413 (and its fix #11414) inspired this search as they are the same
class of bug.
2022-01-24 15:06:36 -08:00
campersau 4d42f6a1c4
chore: remove unused _waitingForObject from Connection (#11474) 2022-01-24 18:58:57 +01:00
Max Schmitt f29a673b4c
fix: do not mute route handler exceptions (#11555) 2022-01-22 22:19:32 +01:00
Yury Semikhatsky ab9d5a0dc4
chore(tracing): add tracing to APIRequestContext (#11502) 2022-01-22 11:25:13 -08:00
Max Schmitt b79daec8e0
chore: make it possible to override Locator.dragTo(strict) (#11457) 2022-01-18 17:51:15 +01:00
Pavel Feldman feb7148b3f
chore: don't write into stdout from the test runner, use reporters instead (#11367) 2022-01-12 19:52:40 -08:00
William Bergeron-Drouin a70f4e6410
fix(android): use isRegExp for a more robust check in different execution contexts (#11359) 2022-01-12 11:04:18 -08:00
Pavel Feldman a12e76b52b
chore: implement locator._highlight / playwright._hideHighlight (#11339) 2022-01-12 07:37:48 -08:00
Dmitry Gozman 4efb30999f
feat(request): show request context methods as steps (#11337) 2022-01-11 17:33:41 -08:00
Pavel Feldman dc07fa6da6
fix(locator.count): do not touch main workd when computing count (#11256) 2022-01-07 15:52:14 -08:00
Dmitry Gozman 8e75dbffaa
fix(errors): waitForEvent/Request/Response should point to the api call (#11229) 2022-01-06 14:47:52 -08:00
Dmitry Gozman f933759ad1
chore(test runner): minor improvements (#11067)
- Types for fixture options and more.
- Refined type for deadline runner.
2021-12-22 09:59:58 -08:00
Dmitry Gozman dd57843404
fix(inspector): do not show internal calls (#10982)
Also mark setDefault{Navigation,}Timeout as always internal.
2021-12-16 17:17:24 -08:00
Yury Semikhatsky fcccac0c08
fix(tracing): return early if no trace was produced (#10953)
This fixes [page/page-set-input-files.spec.ts](https://devops.aslushnikov.com/flakiness2.html#filter_spec=page%2Fpage-set-input-files.spec.ts&commits=50&test_parameter_filters=%5B%5B%22browserName%22%2C%5B%5B%22electron%22%2C%22exclude%22%5D%5D%5D%2C%5B%22platform%22%2C%5B%5B%22Android%22%2C%22exclude%22%5D%5D%5D%2C%5B%22video%22%2C%5B%5Btrue%2C%22exclude%22%5D%5D%5D%2C%5B%22trace%22%2C%5B%5Btrue%2C%22include%22%5D%5D%5D%5D&timestamp=1639590204582) failures.
2021-12-15 17:19:00 -08:00
Pavel Feldman 04e82ce71c
feat(api): make withText an option (#10922) 2021-12-14 15:37:31 -08:00
Max Schmitt 67b16497cc
chore: move setting PW User-Agent on connectOverCDP to the server side (#10899) 2021-12-13 17:20:04 -08:00
Yury Semikhatsky a2a8967bed
chore: create trace.zip in driver for local runs (#10868) 2021-12-13 14:40:29 -08:00
Dmitry Gozman 9491f6652d
fix(steps): do not show unnecessary steps for internal waitForEventInfo (#10889) 2021-12-13 13:32:53 -08:00
Yury Semikhatsky aaa8b07770
chore(tracing): collect source names on server (#10862) 2021-12-10 14:07:22 -08:00
Yury Semikhatsky 976af162b0
feat(tracing): pack sources to trace on the driver side (#10815) 2021-12-09 17:21:17 -08:00
Dmitry Gozman 4996e184bf
fix(electron): make recordVideo work (#10810) 2021-12-08 17:34:50 -08:00
Max Schmitt fdb633dc8b
fix: support regexp flags with locator.withText() (#10779) 2021-12-07 19:33:04 -08:00
Max Schmitt 300a7f9b44
Revert "chore: validate client/server version match for remote connections (#10542)" (#10766)
This reverts commit 41070a2f55.
2021-12-07 14:45:05 -08:00
Dmitry Gozman 516360be5f
fix(waitForEvent): include timeout value in the timeout message (#10738) 2021-12-06 15:42:57 -08:00
Pavel Feldman f583f1604c
feat(locator.withText): allow narrowing locators to those with text (#10688) 2021-12-03 09:27:06 -08:00
Pavel Feldman 31e0a63fcd
feat(toBeChecked): allow passing checked: false (#10665) 2021-12-02 10:31:26 -08:00
Yury Semikhatsky d66b7aab3b
feat(expext): toBeOK for APIResponse (#10596) 2021-11-30 18:12:19 -08:00
Pavel Feldman 11cbdcf58a
fix(tracing): fix tracing + debugger test (#10619) 2021-11-30 17:32:29 -08:00
Max Schmitt 41070a2f55
chore: validate client/server version match for remote connections (#10542)
* chore: validate client/server version match on connect

* only validate major and minor
2021-11-30 08:36:00 +01:00
Joel Einbinder d70e37de80
feat: locator.dragTo (#10287) 2021-11-22 20:27:26 +01:00
Yury Semikhatsky 9c23a78c32
chore: throw instead of returning error from fetch (#10451) 2021-11-19 20:32:29 -08:00
Pavel Feldman a73e6bbd0e
chore: drop wrapApiCall (2) (#10445) 2021-11-19 16:28:11 -08:00
Pavel Feldman 2a98800ac0
chore: drop wrapApiCall (1) (#10428) 2021-11-19 10:12:48 -08:00
Pavel Feldman b302152789
chore(zones): prepare to remove wrapApiCall, introduce zones (#10427) 2021-11-18 22:30:09 -08:00
Yury Semikhatsky 0ca10da166
fix: compute file field mime type on the server (#10394) 2021-11-17 18:12:26 -08:00
Pavel Feldman 70ede0d987
chore: use channel traits (#10389) 2021-11-17 15:26:01 -08:00
Yury Semikhatsky 08a7470b0a
fix: API response to string (#10364) 2021-11-16 15:42:35 -08:00
Yury Semikhatsky fbb3c88f3c
fix(fetch): smarter JSON.stringify for application/json requests (#10245) 2021-11-11 11:12:24 -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
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
Pavel Feldman 4553d76fce
api(frame-locator): introduce frame locators (#10102) 2021-11-08 09:58:24 -08:00
Max Schmitt c5b19351f6
chore: rename Fetch Request/Response to API (#10087) 2021-11-05 16:27:49 +01:00
Yury Semikhatsky bce9a8187d
fix(fetch): post data for delete request (#10019) 2021-11-03 13:26:15 -07:00