Dmitry Gozman
c51ea0afd1
feat(rpc): remove PageAttribution from the protocol, attribute on the client side ( #2957 )
...
This also changes timeout error format to
"page.click: Timeout 5000ms exceeded", so that all errors
can be similarly prefixed with api name.
We can now have different api names in different clients,
and our protocol is more reasonable.
2020-07-15 14:04:39 -07:00
Dmitry Gozman
2151757621
feat(rpc): run rpc tests in-process and out-of-process ( #2929 )
2020-07-13 15:00:20 -07:00
Dmitry Gozman
ab6a6c9b82
chore: run most actions through page._runAbortableTask ( #2721 )
...
This introduces a single place for future snapshots.
2020-06-25 16:57:21 -07:00
Dmitry Gozman
d4c466868b
chore: explicitly plumb various errors through the retries ( #2554 )
...
We are about to have more errors, so explicit plumbing helps with visibility.
2020-06-12 14:59:26 -07:00
Dmitry Gozman
4d069dda0f
feat: avoid side effects after progress aborts ( #2518 )
...
Actions like click, focus or polling now avoid doing any work
with side-effects after their progress has been aborted.
2020-06-09 18:57:11 -07:00
Dmitry Gozman
55cfff38c6
fix(waitForFunction): handle predicate that throws ( #2488 )
...
Currently, we fail when the predicate throws on the first call,
and timeout when it fails on any other call.
There are two possible ways to handle throwing predicates:
- Fail waitForFunction if predicate throws once. This is good
since it gives you the error faster.
- Tolerate predicate exceptions. This is good because you do
not have to worry about non-initialized state during load.
This change implements the former.
2020-06-08 16:29:29 -07:00
Dmitry Gozman
5c3a275270
feat(debug): improve api logs ( #2481 )
2020-06-06 20:59:06 -07:00
Dmitry Gozman
bf67245de6
feat(debug): stream logs from waitForSelector ( #2434 )
...
- we can now stream logs from InjectedScriptProgress to Progress;
- waitForSelector task uses it to report intermediate elements.
2020-06-01 15:48:23 -07:00
Dmitry Gozman
b7df4d57a4
chore: migrate wait tasks to Progress ( #2422 )
2020-06-01 08:54:18 -07:00
Andrey Lushnikov
e312845ba9
fix: less confusing error message ( #2305 )
...
Fixes #2283
2020-05-19 17:47:46 -07:00
Darío Kondratiuk
437d1b6247
test: fix should poll on interval test ( #2180 )
2020-05-11 08:00:53 -07:00
Pavel Feldman
bcce48362a
api(waitForSelector): make "state: visible" default, includes rename to state ( #2091 )
2020-05-04 11:03:44 -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
4afd39117a
fix(waitForSelector): use raf polling instead of mutation ( #2047 )
...
MutationObserver does not work with mutations in the shadow, so we cannot use it for selectors that pierce shadows.
2020-04-29 20:46:42 -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
Pavel Feldman
7f8aa703dd
api(waitFor): remove waitFor, use specialized wait functions ( #1995 )
2020-04-27 12:08:29 -07:00
Dmitry Gozman
ade9d23c28
test: remove module.export.describe wrapper ( #1716 )
2020-04-08 15:19:09 -07:00
Dmitry Gozman
e0c8fbf1a6
test: put test runner api on global, remove unused parameters ( #1684 )
2020-04-07 08:10:31 -07:00
Joel Einbinder
13a6c89dee
fix(test): actually test if page.waitFor accepts arguments ( #1599 )
2020-03-31 09:13:44 -07:00
Yury Semikhatsky
89e123b708
test(firefox): enable CSP tests that use new Function() ( #1542 )
2020-03-25 17:49:07 -07:00
Dmitry Gozman
16c7a5bd5c
api(eval): accept zero or one arguments in all evaluation functions ( #1431 )
2020-03-20 15:08:17 -07:00
Pavel Feldman
3fa000f5f4
api(waitForSelector): bring it back ( #1272 )
2020-03-06 15:02:42 -08:00
Dmitry Gozman
1d770af804
api: waitForElement accepts waitFor: attached|detached|visible|hidden ( #1244 )
...
This includes rename waitForSelector -> waitForElement and removes $wait.
2020-03-05 17:45:41 -08:00
Pavel Feldman
5bd6e4970b
test: it.skip skips and it.fail expects to fail now ( #1178 )
2020-03-02 13:47:08 -08:00
Dmitry Gozman
823bf389a7
api: evaluateOnNewDocument -> addInitScript ( #1152 )
...
Also adds more options to specify the script.
2020-02-27 17:42:14 -08:00
Dmitry Gozman
7682865d73
feat(popups): add BrowserContext.evaluateOnNewDocument ( #1136 )
2020-02-27 16:18:33 -08:00
Dmitry Gozman
1f8508d1ed
feat(waitFor): update various waitFor options to be a single boolean ( #1066 )
2020-02-22 09:16:28 -05:00
Pavel Feldman
53237009ad
feat($wait): make $wait a shortcut for waitForSelector ( #932 )
2020-02-11 14:51:09 -08:00
Joel Einbinder
c03e8b7946
chore(tests): add types for tests ( #915 )
...
I enabled vscode autocomplete in our test files. Typechecking had too many errors to enable, but it caught some real bugs that I will fix in a follow up.
This patch contains:
* `test/types.d.ts` - d.ts file for our test runner.
* `test/tsconfig.json` - typescript project for our tests.
* JSDoc header in all specs to mark the describe as a TestSuite
* Drive-by fix of a launcher test that was using `if` instead of `it`
* Some drive-by fixes of unimpactful typos in tests.
2020-02-10 13:20:13 -08:00
Dmitry Gozman
fee83b17c9
fix(api): page.viewport -> page.viewportSize ( #878 )
...
We now only allow to resize the page, leaving isMobile and deviceScaleFactor as browser context options.
2020-02-06 19:02:55 -08:00
Dmitry Gozman
21510a5b06
feat(firefox): support isolated worlds ( #507 )
2020-01-16 12:57:28 -08:00
Joel Einbinder
0ea6e19b09
fix(test): failing ci tests ( #478 )
...
disables some failing Firefox tests
Moves newContext error checking before the context is created, to not create zombie contexts
sets CI timeout to 30 seconds
waits for `exit` instead of `close` for processes
2020-01-13 17:16:05 -08:00
Yury Semikhatsky
778ab3deff
chore: replace CHROME with CHROMIUM ( #465 )
2020-01-13 10:13:28 -08:00
Pavel Feldman
8f480a3987
docs: more docs update ( #327 )
2019-12-20 16:57:21 -08:00
Andrey Lushnikov
a7f3490e48
feat(testrunner): implement "dit" command ( #312 )
2019-12-19 16:47:35 -07:00
Dmitry Gozman
12ac458614
fix(elementhandle): contentFrame and ownerFrame work in various scenarios ( #311 )
...
Drive-by: use evaluateInUtility for various utility evals.
2019-12-19 15:19:22 -08:00
Dmitry Gozman
c172a7e7e0
feature: $wait similar to waitForFunction, but taking a selector ( #303 )
2019-12-18 18:11:02 -08:00
Andrey Lushnikov
8cc682c7b8
feat(testrunner): allow focusing all tests in a file
...
With this change, exporting a "fdescribe" function from a file
will focus all tests inside the file.
2019-12-18 17:13:39 -08:00
Dmitry Gozman
9afd35d3a1
feature(waitfor): waitFor visible or any by default ( #284 )
2019-12-18 14:28:16 -08:00
Dmitry Gozman
7750db97fe
api: remove ExecutionContext from api ( #290 )
...
In the current state, it is superseeded by Frame and JSHandle.
2019-12-18 13:51:45 -08:00
Dmitry Gozman
fd927000ea
feature: update api around selectors ( #280 )
...
- Selector is again a string.
- Most methods taking selector also accept waitFor option.
- Available waitFor options are: 'visible', 'hidden', 'any' === true, false === undefined.
- waitForXPath is removed.
- waitForSelector is replaced by $(selector, { waitFor: true }).
2019-12-17 14:30:02 -08:00
Pavel Feldman
df95b9ddb4
feat(waitFor): allow actions to wait for selector; make visible requirement default ( #254 )
2019-12-14 20:13:22 -07:00
Pavel Feldman
ad067261fc
test: removed accidental fit
2019-12-12 11:26:17 -08:00
Pavel Feldman
043e2f7513
test: uncomment utility world test
2019-12-12 10:36:11 -08:00
Pavel Feldman
f37d9bfe95
test: extract chromium-specific connect tests
2019-12-10 13:28:50 -08:00
Dmitry Gozman
b4c89ca0f9
chore: unify frame lifecycle events between browsers ( #172 )
2019-12-09 16:34:42 -08:00
Dmitry Gozman
fc5898892b
feat(selectors): support optional "visible" property in all selectors ( #129 )
2019-12-04 13:11:10 -08:00
Dmitry Gozman
6b3c2632e7
feat(selectors): support various selectors in waitFor methods ( #122 )
2019-12-03 10:43:13 -08:00
Pavel Feldman
9ba375c063
Initial commit
2019-11-19 10:58:15 -08:00