Dmitry Gozman
fdbd4fe197
fix(selectors): fix selector parsing for css attributes and quotes ( #2389 )
...
- css attribute selector may contain spaces;
- >> escaping inside strings was sometimes incorrect.
See added test cases for more details.
2020-05-28 14:49:39 -07:00
Pavel Feldman
6620008dcb
chore: follow up to address evaluation review comments ( #2380 )
2020-05-27 22:19:05 -07:00
Dmitry Gozman
ece4789165
feat(debug): expose playwright object in console ( #2365 )
...
- playwright.$ and playwright.$$ to query elements;
- playwright.inspect to reveal an element;
- playwright.clear to remove highlight.
2020-05-27 22:16:54 -07:00
Dmitry Gozman
4413138cc6
fix(fill): allow to clear number input ( #2376 )
2020-05-27 20:01:08 -07:00
Pavel Feldman
e168fddac8
fix(evaluate): consistently serialize json values ( #2377 )
2020-05-27 17:19:05 -07:00
Pavel Feldman
5ee6494032
feat(evaluate): return user-readable error from evaluate ( #2329 )
2020-05-21 16:00:55 -07:00
Pavel Feldman
aa0d844c76
chore: introduce utility script for evaluate helpers ( #2306 )
2020-05-20 15:55:33 -07:00
Andrey Lushnikov
545c43d28d
fix: better hittarget testing for clicking ( #2217 )
...
While checking for hittarget, we first bubble from a target element
up to find the first element without `pointer-events: none` style.
This bubbling does not make much sense: we risk desperately clicking
"body" element, when we were actually asked to click some deeply-nested
"span".
Additionally, in many cases the original intent is to click a button. In this
case, we should use the enclosing "button" as a hit target directly.
Fixes #2175
2020-05-19 16:27:56 -07:00
Pavel Feldman
99b7aaace8
chore: refactor injected script harness ( #2259 )
2020-05-15 15:21:49 -07:00
Dmitry Gozman
51fe84922c
fix(css selector): support comma-separated selector lists ( #2120 )
2020-05-07 13:36:54 -07:00
Pavel Feldman
f6210ae996
fix(webkit): click moving targets on windows ( #2101 )
2020-05-04 16:30:19 -07:00
Dmitry Gozman
953dd36d38
feat(api): remove 'mutation' polling option ( #2048 )
...
It is not compatible with shadow dom.
2020-04-29 21:34:14 -07:00
Dmitry Gozman
b11d7f15bb
feat(input): retry when hit target check fails, prepare for page pause ( #2020 )
2020-04-29 11:05:23 -07:00
Dmitry Gozman
f662686fcd
chore(css selector): temporarily remove light dom shortcut ( #2008 )
2020-04-27 20:23:31 -07:00
Dmitry Gozman
8aab725813
fix(css selector): properly parse quoted attributes when querying in shadow ( #2007 )
2020-04-27 19:50:11 -07:00
Dmitry Gozman
031587a9cf
fix(visibility): unify visibilty checks ( #1998 )
...
This applies a common definition of visibility to clicks and waitfors:
- non-empty bounding box - implies non-empty content and no display:none;
- no visibility:hidden.
2020-04-27 15:40:46 -07:00
Dmitry Gozman
f9f5fd03b0
feat(selectors): allow to capture intermediate result ( #1978 )
...
This introduces the `*name=body` syntax to capture intermediate result.
For example, `*css=section >> "Title"` will capture a section that contains "Title".
2020-04-27 10:14:09 -07:00
Dmitry Gozman
7ecf252dd6
feat(text selector): concat sibling text nodes when calculating text ( #1969 )
...
Text that is split into multiple text nodes now matches.
2020-04-24 20:49:29 -07:00
Dmitry Gozman
5ac7f0e4ec
fix(text selector): allow single quoted text ( #1952 )
2020-04-23 18:48:53 -07:00
Pavel Feldman
c1c0237d4e
api(dispatchEvent): page, frame and handle versions added ( #1932 )
2020-04-23 14:58:37 -07:00
Dmitry Gozman
793586e42c
fix(click): throw instead of timing out when the element has moved ( #1942 )
2020-04-23 14:44:06 -07:00
Dmitry Gozman
55b4bc99bd
feat(actions): requery the element when it was detached during the action ( #1853 )
2020-04-18 18:29:31 -07:00
Dmitry Gozman
af2340c35e
fix(click): explicitly fail when element detached during click ( #1835 )
...
We used to timeout instead.
2020-04-16 15:38:41 -07:00
Pavel Feldman
2280126344
api(setInputFiles): introduce page/frame helpers, document, break compat ( #1818 )
2020-04-16 10:25:28 -07:00
Dmitry Gozman
56aa4c2e71
fix(selectors): do not automatically enter shadow roots with >> ( #1812 )
...
Now that we have shadow-aware selector engines, this extra logic adds confusion
and does not help to actually query the element.
2020-04-15 16:12:45 -07:00
Dmitry Gozman
b0d79d5124
feat(shadow): make css pierce shadow by default ( #1784 )
...
We leave css:light, text:light, id:light, and similar to opt-out from the shadow dom piercing. The notable exception is xpath that is always light.
2020-04-15 10:16:29 -07:00
Pavel Feldman
da683b2752
feat(selectAll): allow selecting all in the inputs and in the plain dom ( #1783 )
2020-04-14 17:09:26 -07:00
Dmitry Gozman
9542f47511
feat(selectors): deep selector which pierces open shadow roots ( #1738 )
2020-04-13 13:04:27 -07:00
Pavel Feldman
c6f580faf8
chore: migrate from timeouts to deadlines internally ( #1695 )
2020-04-07 14:35:34 -07:00
Dmitry Gozman
e683c086de
fix(fill): make fill work with date/time inputs ( #1676 )
...
Date/time inputs are locale-specific, and also do not work with insertText. We just set the value on them and emulate input/change events. Note that some browsers do not support these input types just yet.
2020-04-07 10:07:06 -07:00
Pavel Feldman
889cf8f7b6
fix(input): climb dom for pointer-events:none targets ( #1666 )
2020-04-06 20:44:54 -07:00
Dmitry Gozman
a91304a37a
feat(selectors): attribute selectors pierce open shadow roots ( #1656 )
...
References #1375 .
2020-04-03 20:47:08 -07:00
Dmitry Gozman
270206e2b4
feat(text selector): match button input by value ( #1657 )
...
Inputs of type button and submit are rendered with their value as text,
so we match them by text.
Fixes #1427 .
2020-04-03 14:18:08 -07:00
Dmitry Gozman
a9be3c5191
feat(text selector): pierce shadow roots ( #1619 )
2020-04-02 18:03:30 -07:00
Dmitry Gozman
a7b61a09be
fix(text selector): by default, do a substring match ( #1618 )
2020-03-31 23:04:04 -07:00
Dmitry Gozman
c01ad84bd4
fix(fill): use isVisible to be consistent with waitForSelector ( #1539 )
...
Fixes #1442 .
2020-03-25 14:40:42 -07:00
Dmitry Gozman
60942d0af5
chore(selectors): move selectors logic to selectors.ts ( #1536 )
...
This encapsulates selectors logic in one place, in a preparation for more complex scenarios like main-world selectors or piercing frames.
Note: we had `Page.fill should wait for visible visibilty` test, but we do not actually wait for visible in page.fill(). It happened to pass due to lucky evaluation order.
References #1316 .
2020-03-25 14:08:46 -07:00
Dmitry Gozman
15c70c9d61
fix(click): timing out in page while waiting for interactable should have proper error ( #1199 )
...
This fixes flaky 'Page.click should timeout waiting for visible' test.
2020-03-03 17:14:00 -08:00
Dmitry Gozman
342a2cf5cc
fix(selectors): continue matching after first fail for combined selectors ( #1185 )
2020-03-02 15:47:50 -08:00
Dmitry Gozman
1186998bd8
fix(click): wait for element to be displayed before scrolling into view ( #1182 )
...
Otherwise, we may get an error during scrollIntoViewIfNeeded protocol call.
2020-03-02 14:26:38 -08:00
Dmitry Gozman
ac2f04f10f
api(selectors): pass selector name when registering, allow file path ( #1162 )
2020-02-28 15:34:07 -08:00
Dmitry Gozman
7843c29d32
feat(selectors): auto-detect each selector part ( #1160 )
2020-02-28 14:41:32 -08:00
Joel Einbinder
857ffd8ea9
fix: text selector should be case insensitive without quotes ( #1151 )
2020-02-27 16:52:30 -08:00
Dmitry Gozman
d97ea70804
chore: move more injected code to injected to reduce evaluation size ( #1093 )
2020-02-25 07:06:20 -08:00
Dmitry Gozman
33824aa1d7
feat(click): waitForInteractable option, defaults to true ( #934 ) ( #1052 )
2020-02-19 09:34:57 -08:00
Dmitry Gozman
dbb45d443a
Revert "feat(click): waitForInteractable option, defaults to true ( #934 )" ( #1013 )
...
Reason: new tests are flaky on all bots.
2020-02-14 13:05:23 -08:00
Dmitry Gozman
9413351d3f
feat(click): waitForInteractable option, defaults to true ( #934 )
2020-02-14 11:55:34 -08:00
Joel Einbinder
73148fda79
chore(lint): add @typescript-eslint/no-unnecessary-type-assertion rule ( #898 )
2020-02-07 13:38:50 -08:00
tsuemura
fc93b886d9
fix: typo ( #740 )
2020-01-29 09:40:13 -08:00
Dmitry Gozman
fb1b3d9a89
chore: finish strict type checks across src ( #482 )
2020-01-13 22:08:35 -08:00