Commit graph

1428 commits

Author SHA1 Message Date
Pavel Feldman cb6e4a6657
chore: update snippets in python docs (#4976) 2021-01-11 17:04:24 -08:00
Dmitry Gozman 725191967b
fix(connect): provide an error message when ws endpoint is incorrect (#4978) 2021-01-11 15:53:45 -08:00
Dmitry Gozman 5a2cfdbd47
api: add isChecked method (#4953)
This adds `{Page,Frame}.isChecked(selector)` and `ElementHandle.isChecked()` methods.

Useful to do assertions in tests:
```js
await page.click('text="Add TODO"');
expect(await page.isChecked('.item-done')).toBe(false);
```
2021-01-08 17:36:17 -08:00
Joel Einbinder 31d980fc92
chore(webpack): minify injected sources (#4946) 2021-01-08 16:15:05 -08:00
Dmitry Gozman 3f904056ee
api: add isVisible, isHidden, isEnabled, isDisabled and isEditable (#4915)
These methods are useful for verification in tests, e.g.
```js
expect(await page.isEnabled(':text("Remove All")')).toBe(false);
await page.click(':text("Add Item")');
expect(await page.isVisible('.item:text("new item")')).toBe(true);
expect(await page.isEnabled(':text("Remove All")')).toBe(true);
```
2021-01-08 12:27:54 -08:00
Dmitry Gozman eb9ea20511
feat(selectors): proximity selectors (#4923) 2021-01-07 14:12:59 -08:00
Yury Semikhatsky 0a2fe62cb7
fix(extensions): do not enable screencast for background pages (#4919) 2021-01-06 15:08:28 -08:00
Dmitry Gozman 9bbabaaa74
test: update screencast test to actually require red color (#4745) 2021-01-05 20:31:50 -08:00
Dmitry Gozman 5215add60d
chore: remove selectorsV2Enabled switch (#4880)
Selectors V2 seem to stick.
2021-01-04 15:32:31 -08:00
Dmitry Gozman c4df522555
fix(handles): always create proper handle type (#4879) 2021-01-04 13:54:55 -08:00
Joel Einbinder 6697dadca2
chore(eslint): add rule no-unused-expressions (#4848) 2020-12-29 09:59:35 -08:00
Dmitry Gozman 8fbb984f64
test: disable most codegen on headful firefox (#4839)
It has problems with focus.
2020-12-28 17:39:30 -08:00
Dmitry Gozman 068d8612a7
feat(cli): make run-driver work (#4836) 2020-12-28 15:44:24 -08:00
Dmitry Gozman 293a7bdd4c
feat(cli): bring in codegen and tests (#4815) 2020-12-28 14:50:12 -08:00
Dmitry Gozman 4c11f5d885
test: remove hacky requires, use imports instead (#4835)
Since our client implements our types, we can now import
implementation in tests without type conflicts.
2020-12-28 11:14:33 -08:00
Dmitry Gozman 905f28c339
feat(types): simplify android and electron types (#4829)
These now follow the scheme for regular types.
2020-12-26 20:25:18 -08:00
Dmitry Gozman 225e65e076
feat(cli): share console api between cli and debug mode (#4807) 2020-12-23 14:15:16 -08:00
Dmitry Gozman f709e2300c
feat(cli): bring selector generator into playwright (#4795)
Also remove unused `SelectorEngine.create` function and add tests.
2020-12-23 12:44:47 -08:00
Yury Semikhatsky 8d4c46ac19
fix: throw if quality=0 is passed for png screenshot (#4812) 2020-12-23 09:53:14 -08:00
Yury Semikhatsky 3eef2548e4
test: failing test for firefox per-context proxy credentials (#4790) 2020-12-21 14:39:11 -08:00
Yury Semikhatsky 94ee48f8ce
fix: allow proxy credentials with empty password (#4779) 2020-12-21 11:47:13 -08:00
Dmitry Gozman fc30c29a19
test: add a test for custom engine that does not respect root (#4777) 2020-12-19 12:21:20 -08:00
Max Schmitt c81ec9ccca
test: fixed failing test on video bot (#4747) 2020-12-18 14:46:12 -08:00
Pavel Feldman 774eb53980
fix(adb): force page scale factor update on connection (#4755) 2020-12-17 18:28:49 -08:00
Yury Semikhatsky 3219057ab0
fix(webkit): support utf-8 characters in postData, bump to 1407 (#4744) 2020-12-17 18:09:06 -08:00
Dmitry Gozman 5a1c9f1fe1
fix(selector): bring back v1 query logic (#4754)
It turned out that v1 query logic is not shimmable by v2 logic.
This change brings back v1 query logic for `>>` combinator.
2020-12-17 17:01:46 -08:00
Dmitry Gozman 9a0023cc03
fix(selectors): text engine after capture matches scope (#4749) 2020-12-17 06:19:43 -08:00
Dmitry Gozman 35533b15c1
fix(scroll): scroll from under the sticky header (#4641)
When element with position:sticky covers some part of
the scroll container, we could fail to scroll from under it
to perform an action. To fight this, we can try different
scroll alignments and scroll to the top/bottom/center
in the attempt to scroll away from sticky header/footer/sidebar.
2020-12-16 15:29:42 -08:00
Max Schmitt 23a6e4dfe9
chore: restructure and optimise test files (#4736) 2020-12-16 07:28:44 -08:00
Max Schmitt 2c409b040e
fix(android): leaking adb socket connections (#4730) 2020-12-15 20:15:25 -08:00
Pavel Feldman 97be66b15c
fix(adb): enable newPage in mobile browser (#4728) 2020-12-15 15:14:16 -08:00
Pavel Feldman e02c54485c
chore(adb): make driver smaller (#4713) 2020-12-14 18:39:14 -08:00
Dmitry Gozman 355a58e616
feat(storage): accept path in save/load storage apis (#4714)
Also make Firefox accept `expires: -1` cookies.
2020-12-14 16:03:52 -08:00
Pavel Feldman 4799e8f20b
feat(adb): add screenshot (#4701) 2020-12-13 23:20:13 -08:00
Pavel Feldman 1596b53da2
test(adb): fix browser tests (#4700) 2020-12-13 22:33:00 -08:00
Max Schmitt f4eff4dbe0
devops: add bot to test Android (#4693) 2020-12-13 14:13:50 -08:00
Max Schmitt 1b7fb7d56a
feat(android): expose installAPK(path) and ADB socket (#4689) 2020-12-12 09:36:38 -08:00
Pavel Feldman 6cc695d92a
test(adb): fix the adb tests (#4691) 2020-12-12 01:18:32 -08:00
Pavel Feldman 2ba60e92e3
test(adb): add some adb tests (#4679) 2020-12-11 23:36:08 -08:00
Dmitry Gozman 495085cbb2
fix(chromium): make interception work with dedicated workers (#4658) 2020-12-10 15:04:57 -08:00
Dmitry Gozman b9c959768c
feat(selectors): optimize old->new conversion for css (#4672) 2020-12-10 15:03:02 -08:00
Dmitry Gozman e97ab7e42f
test: unflake some web socket tests (#4673)
Tests were waiting for `framesent` event after awaiting `page.evaluate`.
Sometimes, `page.evaluate` took long enough and finished after
the `framesent`.

Drive-by: small fixes for mode=service test fixture.
2020-12-10 15:01:30 -08:00
Dmitry Gozman c8e9b0542b
feat(selectors): disable proximity selectors (#4659)
These are not ready for prime time yet.
2020-12-10 10:04:10 -08:00
Dmitry Gozman b67e022111
feat(selectors): update new text selector (#4654)
We now default to `text` that does substring case-insensitive match
with normalized whitespace. `text-is` matches the whole string.
`matches-text` is renamed to `text-matches`.
2020-12-09 16:05:51 -08:00
Pavel Feldman aacd8e633c
chore: expose adb devices and actions (#4647) 2020-12-09 15:06:57 -08:00
Dmitry Gozman ab44d682ca
feat(selectors): remove index for now, add documentation (#4640) 2020-12-09 13:08:37 -08:00
Dmitry Gozman 1060fce005
feat(selectors): explicit list of custom functions (#4629)
When parsing CSS, we assume everything is a valid CSS function,
unless it is in the list of custom functions. This way we'll parse
future CSS functions automatically.
2020-12-08 09:38:43 -08:00
Joel Einbinder ea833daa89
chore: fix internal binding (#4598) 2020-12-08 08:38:29 -08:00
Dmitry Gozman 1e754a4d80
feat(selectors): proximity selectors (#4614)
This includes 'left-of', 'right-of', 'above', 'below', 'near' and 'within'.
2020-12-07 16:07:47 -08:00
Dmitry Gozman 18b565a969
feat(selectors): correctly work in large DOM (#4628)
This adds a test, fixes a bunch of call stack issues and
improves performance in some places.
2020-12-07 15:51:44 -08:00
Dmitry Gozman 1e0ab79f9a
feat(selectors): add visible and index engines (#4595) 2020-12-06 15:03:36 -08:00
Pavel Feldman cdd9fd6b2e
test(click): add a failing test for click w/ scroll (#4606) 2020-12-04 20:54:10 -08:00
Dmitry Gozman 8218a71a9b
feat(selectors): add more tests for css selectors (#4596) 2020-12-04 16:12:59 -08:00
Dmitry Gozman aed3d14b81
test: unflake "should not result in unhandled rejection" (#4602) 2020-12-04 14:48:20 -08:00
Dmitry Gozman 49a3f943b6
feat(selectors): switch to the new engine (#4589)
We leave old implementation under the boolean flag,
just in case we need a quick revert.
2020-12-04 06:51:18 -08:00
Dmitry Gozman 3121de403b
test: remove tests for SelectorEngine.create (#4580)
We are not going to keep this functionality on arbitrary engines.
2020-12-03 14:10:26 -08:00
Pavel Feldman 7e30669eb0
fix(binding): catch binding resolution against the closed page (#4583) 2020-12-03 10:51:59 -08:00
Pavel Feldman 5002b83b4a
test(focus): add a failing focus test (#4581) 2020-12-03 10:51:45 -08:00
Dmitry Gozman 3d6194e8a1
feat(selectors): introduce css evaluator (#4573)
Not used for production yet.
2020-12-02 14:46:19 -08:00
Dmitry Gozman 52ae218bfc
fix(fill): allow filling more input types (#4563)
This includes invalid types that are no recognized by the browser.
2020-12-02 14:43:41 -08:00
Pavel Feldman f5c8e1d344 link: make lint happy 2020-12-02 13:48:44 -08:00
Pavel Feldman 1ca30fe6e7
chore: force lo dpi recording on non-mac (#4557) 2020-12-02 11:13:14 -08:00
Dmitry Gozman a45532fd82
feat(selectors): update css parser (#4565)
This change requires string arguments to be quoted,
for example `:text("foo")` works but `:text(foo)` does not.
2020-12-02 08:16:02 -08:00
Dmitry Gozman 3846d05f02
feat(firefox): bump to 1217 (#4560)
Also add a test for multiple dialogs of the same type.
2020-12-01 14:40:03 -08:00
Joel Einbinder 9c677f64e0
feat(webkit): roll webkit to r1395 (#4550) 2020-12-01 05:26:53 -08:00
Dmitry Gozman e98aceb981
feat(selectors): introduce css parser (#4522)
It is not used for anything just yet.
2020-11-30 16:31:40 -08:00
Dmitry Gozman 62f7437a2c
test: remove the flaky test we are not going to fix (#4527)
It will just sit here, being flaky, not giving us any information.
2020-11-25 11:32:33 -08:00
Joel Einbinder c6d5bc3081
test(drag): more tests for drag and drop (#4508) 2020-11-25 03:29:20 -08:00
Dmitry Gozman 60103229d8
test: unflake some chromium tests (#4521)
These should be passing for a while.
2020-11-24 18:14:57 -08:00
Andrey Lushnikov 2486a4fb05
chore: fix lint after #4517 (#4518) 2020-11-24 06:50:40 -08:00
Andrey Lushnikov 062ec7e440
test: enable resource-timing test on BigSur (#4517)
It looks like the test is working! 🤷‍♂️
2020-11-23 16:22:15 -08:00
Dmitry Gozman e9060dd68a
fix(launchServer): wait for the server to start before taking its address (#4513)
This is easily triggered by launching from a cluster's worker.
2020-11-23 15:23:31 -08:00
Andrey Lushnikov 4f4a7ce5e5
test: add test for network interception in web workers (#4490)
#4487
2020-11-23 15:03:34 -08:00
Pavel Feldman e72d9a4185
chore: add websocket connection mode (#4510) 2020-11-20 15:19:39 -08:00
Pavel Feldman a0587949a5
feat(chromium): roll to r828656 (#4503) 2020-11-20 08:10:27 -08:00
Dmitry Gozman 240d51f1d3
docs: improve boundingBox documentation (#4500)
Also add a test to verify it.
2020-11-19 13:55:14 -08:00
Yury Semikhatsky de43de7a8c
test: make test not depend on line endings (#4497) 2020-11-19 12:10:44 -08:00
Dmitry Gozman 09f9a35198
fix(protocol): rename websocket error event to socketerror (#4495)
This is to avoid special handling of error events in node.
2020-11-19 12:09:42 -08:00
Yury Semikhatsky ce423517ea
test(route): test that intercepted XHR is actually paused (#4482) 2020-11-18 19:09:18 -08:00
Yury Semikhatsky a877c24f05
fix(route): throw on attempt to fulfill with redirect in WebKit (#4449) 2020-11-17 16:56:04 -08:00
Pavel Feldman ab4a627988
feat(webkit): roll to r1388 (#4464) 2020-11-17 08:09:26 -08:00
Joel Einbinder 93b6faeed2
test(chromium): disable webgl2 on headful (#4450) 2020-11-16 16:18:50 -08:00
Joel Einbinder 3da1f73f1d
test(chromium): disable large screenshot test (#4446) 2020-11-16 10:15:22 -08:00
Joel Einbinder 0ae455f404
test(tap): unflake chromium headful tap tests (#4431) 2020-11-16 10:14:37 -08:00
Yury Semikhatsky dfe3552b59
feat(route): support URL overrides in continue (#4438) 2020-11-16 09:59:00 -08:00
Yury Semikhatsky 732e83f48d
feat(webkit): bump to 1385 (#4430) 2020-11-13 16:29:20 -08:00
Yury Semikhatsky 914c6eec23
feat(firefox): bump to 1206 (#4425) 2020-11-13 15:21:16 -08:00
Pavel Feldman 9404d2abb6
fix(debug): do not generate source urls for anonymous scripts (#3691) 2020-11-13 14:47:55 -08:00
Pavel Feldman d20e56e197
feat(state): allow getting / setting context state (#4412) 2020-11-13 14:24:53 -08:00
Pavel Feldman a35d207091
test: fix resource timing for bigsur test (#4419) 2020-11-13 14:10:32 -08:00
Dmitry Gozman cd18ddb693
test: add a test for numerical id selector (#4429) 2020-11-13 11:47:44 -08:00
Yury Semikhatsky 5702eca1f2
fix(selectors): make selectOptions work for labels (#4402) 2020-11-11 15:33:23 -08:00
Dmitry Gozman 138680f93c
fix(launchServer): stream protocol logs into options.logger (#4403)
fix(launchServer): stream protocol logs into options.logger

This has regressed in v1.4.
2020-11-11 15:12:10 -08:00
Pavel Feldman 6b1d7dd1fd
test: add a failing test for post data header override (#4397) 2020-11-11 11:38:55 -08:00
Dmitry Gozman 488b256c47
feat(firefox): bump to 1205 (#4386) 2020-11-09 16:16:10 -08:00
Dmitry Gozman f7eb845df0
feat(firefox): bump to 1204, add a better test for video in popup (#4376) 2020-11-07 18:21:26 -08:00
Pavel Feldman 28f6547d67
chore: add adb-based connectivity (#4375) 2020-11-06 16:31:11 -08:00
Andrey Lushnikov fff36a7991
feat(firefox): roll Firefox to r1203 (#4365)
Fixes #4208
2020-11-05 23:17:27 -08:00
Dmitry Gozman c384313058
feat(fill): allow filling based on the label selector (#4342)
This enables filling the input based on the connected label:

```html
<label for=target>Name</label><input id=target>
```

```js
await page.fill('text=Name', 'Alice');
```
2020-11-05 05:22:49 -08:00
Joel Einbinder 3f37d8507e
test(focus): add passing test for focusing more than one page (#4347) 2020-11-04 22:42:35 -08:00