Joel Einbinder
8904f401c2
chore(jest): defaultbrowsercontext.jest.js ( #3003 )
2020-07-17 16:07:31 -07:00
Pavel Feldman
a8216339d8
Revert "fix(chromium): select all on macos should work again ( #3006 )" ( #3011 )
2020-07-17 14:34:05 -07:00
Pavel Feldman
096ec4c44f
test: move fixtures to jest ( #3010 )
2020-07-17 13:53:23 -07:00
Pavel Feldman
24f6d19e27
test: move remaining tests to jest ( #3009 )
2020-07-17 13:02:50 -07:00
Joel Einbinder
631fbce7ff
fix(chromium): select all on macos should work again ( #3006 )
...
* fix(chromium): select all on macos should work again
* Update src/chromium/crInput.ts
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-07-17 10:59:48 -07:00
Joel Einbinder
9140063c90
fix(accessibility): don't filter everything when the page has a title ( #2909 )
2020-07-17 10:48:50 -07:00
Dmitry Gozman
d8bedd851d
chore: explicitly type SerializedArgument, fix rpc dispatchEvent ( #2988 )
...
We now have types for SerializedValue/SerializedArgument. This will
allow us to avoid double parse/serialize for evaluation arguments/results.
Drive-by: typing exposed a bug in ElementHandle.dispatchEvent().
2020-07-17 09:53:13 -07:00
Pavel Feldman
070a257600
test: move all generic page tests to jest ( #3002 )
2020-07-17 09:49:12 -07:00
Joel Einbinder
df8b27069e
chore(jest): convert browser tests to jest ( #3000 )
2020-07-17 08:22:39 -07:00
Pavel Feldman
1c0504ae28
test: respect fixtures in describe, match image snapshots ( #2989 )
2020-07-16 22:38:52 -07:00
Darío Kondratiuk
fe95ee00c3
test: group browserType.launchServer tests ( #2944 )
2020-07-16 20:33:40 -07:00
Pavel Feldman
424f11d165
test: convert some tests to the jest+fixtures ( #2983 )
2020-07-16 16:59:45 -07:00
Dmitry Gozman
056f0e290d
feat(rpc): ensure that error stack traces point to the user code ( #2961 )
...
This also adds more "_wrapApiCall" calls for correct logs and stack traces.
2020-07-16 14:32:21 -07:00
Dmitry Gozman
4c8ba3ed67
chore: remove cli ( #2976 )
...
It will be a separate package instead.
2020-07-16 13:13:26 -07:00
Dmitry Gozman
513899a3b9
test: add a test for arbitrary options ( #2977 )
...
We should be able to accept unexpected properties in options objects.
2020-07-16 12:21:36 -07:00
Pavel Feldman
ecc130c644
test: convert evaluation.spec to jest+fixtures ( #2968 )
2020-07-16 11:18:38 -07:00
Dmitry Gozman
198ecee875
api(exposeBinding): allow handles in the binding result ( #2970 )
2020-07-15 20:05:11 -07:00
Dmitry Gozman
aa4c893b09
feat(rpc): implement waitForNavigation on the client ( #2949 )
...
Drive-by: fix electron issues, exposed by the test using
waitForNavigation.
Drive-by: mark some tests skip(CHANNEL) that were mistakenly
marked skip(USES_HOOKS).
2020-07-15 18:48:19 -07:00
Pavel Feldman
19cd96c46a
test: add the jest-circus experimental runner ( #2962 )
2020-07-15 16:52:41 -07:00
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
4a00e5c4ea
test: remove flaky test for binding on error pages ( #2952 )
...
I wasn't able to make it consistently pass...
2020-07-14 21:20:14 -07:00
Dmitry Gozman
2d5c0328cd
feat(rpc): return objects for every protocol command ( #2950 )
...
For future extensibility, returning objects with fields instead
of plain strings or channels.
2020-07-14 18:26:50 -07:00
Dmitry Gozman
1b84ec9023
fix(binding): dispatch binding after the page has been initialized ( #2938 )
...
... but not after it was closed.
2020-07-14 13:34:49 -07:00
Pavel Feldman
d5bd459986
chore(rpc): remove some paths from the channel ( #2934 )
2020-07-14 10:51:37 -07:00
Dmitry Gozman
cc8fe5a763
feat(rpc): support electron ( #2933 )
2020-07-13 21:46:59 -07:00
Dmitry Gozman
9fdb3e23c3
feat(rpc): support selectors ( #2936 )
2020-07-13 17:47:15 -07:00
Dmitry Gozman
65d45c18c3
feat(rpc): introduce Waiter for various waitFor implementations ( #2935 )
...
Use it for waitForEvent and waitForLoadState.
2020-07-13 16:03:24 -07:00
Dmitry Gozman
9fd30e58e2
feat(rpc): ensure feature-detection works as before ( #2898 )
...
For this, some tests are migrated from skip() to feature detection,
like our users would do.
2020-07-13 15:26:09 -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
6d94c92053
feat(rpc): support no-serialization mode, run hook tests ( #2925 )
...
Added rpc_json_linux bots to excercise serialization - these
do not run hook tests.
2020-07-13 08:31:20 -07:00
Dmitry Gozman
6674458496
feat(rpc): log api calls into LoggerSink ( #2904 )
2020-07-10 18:00:10 -07:00
Dmitry Gozman
fc6861410b
feat(rpc): merge DispatcherScope and Dispatcher ( #2918 )
2020-07-10 16:24:11 -07:00
Pavel Feldman
ebb4c3320f
test: mark 2 chromium not important win tests as failed ( #2914 )
2020-07-10 16:15:12 -07:00
Andrey Lushnikov
a403d4beff
fix(firefox): fix launching firefox without dependencies ( #2900 )
...
We always have to reject promises with some error. Otherwise,
our error-rewriting logic in try-catch miserably fails.
With this patch, attempt to launch Firefox when it's missing
dependencies will actually result in a thrown exception with
pretty logs. Without this patch, Playwright throws internal error.
2020-07-10 16:04:19 -07:00
Pavel Feldman
631f76df75
chore(rpc): remove union types from page and handles ( #2912 )
2020-07-10 15:39:11 -07:00
Dmitry Gozman
b6fd4dc56c
feat(rpc): merge ChannelOwner and ConnectionScope ( #2911 )
2020-07-10 15:11:47 -07:00
Dmitry Gozman
54f9a0dd7b
test: update headfull chromium expectations after a recent roll ( #2908 )
2020-07-10 14:26:49 -07:00
Pavel Feldman
d561465214
devops: use matrix in GHA, add non-linux rpc ( #2907 )
2020-07-10 13:15:57 -07:00
Pavel Feldman
c89c30e333
fix(popup): do not report frameless pages ( #2910 )
2020-07-10 13:15:39 -07:00
Dmitry Gozman
a91ec9a15d
feat(rpc): pass more tests ( #2896 )
...
Includes coverage, tracing and misc close() tests.
2020-07-09 15:33:01 -07:00
Dmitry Gozman
7039409397
test: skip devtools test with USES_HOOKS ( #2895 )
2020-07-09 13:45:28 -07:00
Joel Einbinder
e90ba26250
fix(context): fire close event for persistent contexts ( #2891 )
2020-07-09 08:34:07 -07:00
Dmitry Gozman
8fe29feb21
feat(rpc): support more chromium-specific apis ( #2883 )
...
This includes page CDPSession, backgroundPages() and serviceWorkers().
This has also revealed an issue with closing order between the context
and the service worker.
2020-07-08 21:36:03 -07:00
Pavel Feldman
b3ca4afd40
chore: misc test fixes ( #2857 )
2020-07-08 18:42:31 -07:00
Pavel Feldman
6209d14f87
chore: misc test fixes ( #2888 )
2020-07-08 18:42:04 -07:00
Andrey Lushnikov
c3ac0371e6
test: add test to validate user-agent sanity ( #2887 )
2020-07-08 17:45:45 -07:00
Andrey Lushnikov
458aaa508f
feat(chromium): roll Chromium to r786218 ( #2879 )
...
This roll includes:
- https://crrev.com/786119 - mac: close context menu when destroying RenderViewContextMenuMacCocoa
Fixes #2700
2020-07-08 17:09:42 -07:00
Joel Einbinder
040c6a6a41
chore(jest): run tests with jest ( #2754 )
...
Experimentally run `npx jest` to run our tests with jest.
2020-07-08 11:13:18 -07:00
Joel Einbinder
8611ee8df7
chore(testrunner): typescript test files ( #2751 )
...
This lets our spec files be .ts instead of just .js. The typescript files will be checked against the public types. Tests are compiled with babel just in time before running them, emulating the jest experience. TypeScript tests are also linted with eslint.
I converted keyboard.spec.js as the first demo. I'll follow up converting some more more tests.
2020-07-08 00:20:36 -07:00
Dmitry Gozman
0c80c22716
feat(rpc): plumb CDPSession ( #2862 )
2020-07-07 18:47:00 -07:00
Dmitry Gozman
2a86ead0ac
chore: replace FrameTask with internal events on Frame ( #2856 )
...
We now use a few helper.waitForEvent calls to wait for internal
events kNavigationEvent and kLifecycleEvent. With these events,
we should be able to replicate logic over rpc.
2020-07-07 15:22:05 -07:00
Dmitry Gozman
35cb20d5ad
test: unflake recorder tests ( #2808 )
...
We ensure that recorder is installed in the main frame before running the test.
2020-07-07 14:11:59 -07:00
Dmitry Gozman
ac2185a9d9
test: update http credentials tests ( #2806 )
2020-07-06 11:28:07 -07:00
Andrey Lushnikov
7f60c4df62
feat(webkit): roll webkit to r1301 ( #2827 )
...
References #2700
2020-07-02 18:51:03 -07:00
Andrey Lushnikov
05b019f1ba
reland: testrunner: make environment a simple class ( #2812 )
...
This re-lands PR https://github.com/microsoft/playwright/pull/2769
It was reverted before in https://github.com/microsoft/playwright/pull/2790
because it was breaking the new CHANNEL bot.
2020-07-02 11:05:38 -07:00
Yury Semikhatsky
6329cbbbf8
chore: remove dead code from test ( #2819 )
2020-07-02 10:42:46 -07:00
Andrey Lushnikov
756d537324
feat(webkit): roll WebKit to r1298 ( #2813 )
2020-07-02 09:50:16 -07:00
Joel Einbinder
cb0c037e17
test(chromium): enable selectall test on mac ( #2788 )
2020-07-02 01:57:30 -07:00
Andrey Lushnikov
f9f3aeb0fe
test: add failing test for context menus that prevent browser close ( #2811 )
...
References #2700
2020-07-02 00:45:02 -07:00
Dmitry Gozman
19abc9bd9f
fix(dialogs): let click timeout, log information about dialogs ( #2781 )
...
We should not stall selector actions because of dialogs
and properly timeout instead. For this, we should not await
the handle.dispose() call because it will never happen
while dialog is shown.
Also, log information about dialogs to make it easier to debug.
2020-07-01 22:10:37 -07:00
Dmitry Gozman
0d16b16e91
fix(firefox): unskip worker error test ( #2805 )
2020-07-01 22:07:53 -07:00
Dmitry Gozman
e12e2451e4
test: disable flaky test on chromium mac ( #2807 )
2020-07-01 22:01:44 -07:00
Dmitry Gozman
9d6eaadba7
fix(navigation): ensure that goBack/goForward work with file urls ( #2792 )
2020-07-01 19:17:27 -07:00
Pavel Feldman
d484e04a08
test(route): add another route test ( #2800 )
2020-07-01 18:31:08 -07:00
Dmitry Gozman
e8e45e8450
feat(dom): migrate innerText, innerHTML and getAttribute to tasks ( #2782 )
...
This ensures synchronous access to avoid element recycling.
2020-07-01 16:10:53 -07:00
Pavel Feldman
c25fc4956d
chore(rpc): scope client-side handles ( #2796 )
2020-07-01 13:55:29 -07:00
Pavel Feldman
e467ea57e7
revert: testrunner: make environment a simple class ( #2769 ) ( #2790 )
2020-07-01 10:56:19 -07:00
Joel Einbinder
e480ec3f59
feat(chromium): roll to r782078 ( #2714 )
...
Highlights:
- [Remove support for (prefers-color-scheme: no-preference).
](ed6b36f0b4 )
- [DevTools: Add commands option to Input.dispatchKeyEvent
](3d3ee67f69 )
#1067
2020-07-01 07:26:08 -07:00
Pavel Feldman
95538e73e7
chore(rpc): move classes around, fix tests, respect dispatcher scopes ( #2784 )
2020-06-30 22:21:17 -07:00
Pavel Feldman
87516cb3a3
chore(rpc): make dispatcher creation and lookup explicit ( #2783 )
2020-06-30 21:30:39 -07:00
Andrey Lushnikov
1605cb453c
testrunner: make environment a simple class ( #2769 )
...
This patch:
- makes environment a simple class with optional methods `beforeEach`, `afterEach`, `beforeAll`, `afterAll`, `globalSetup` and `globalTeardown`
- removes capability to have multiple hooks of the same name inside suite
- removes default environment for test. (`dit` now adds a `TraceTestEnvironment` to the test)
- extracts all environments that we use in our tests in `//test/environments.js`
Downsides:
- we no longer know hook locations for the environments. This, however, should not be a big deal since stack traces (if any) will still point into it.
- this also regresses hook locations for suites for simplicity. We can get them back, but it shouldn't be pressing since we now have only one hook of each kind in every suite.
2020-06-30 16:51:03 -07:00
Pavel Feldman
e29f7b9f58
chore(rpc): support workers, file chooser, browser server ( #2766 )
2020-06-30 10:55:11 -07:00
Pavel Feldman
5bb018e0e5
chore(rpc): attribute calles to page, ignore USES_HOOKS ( #2764 )
2020-06-29 18:58:09 -07:00
Dmitry Gozman
38236b4f29
fix(close): ensure close() can be called twice ( #2744 )
...
... without any exceptions.
2020-06-29 16:26:32 -07:00
Dmitry Gozman
1fa9d30992
fix(evaluate): awaitPromise when Promise is overwritten ( #2759 )
...
Firefox and WebKit require native promises to provide awaitPromise
functionality. When the Promise is overwritten, all evaluations
in the main world produce wrong Promise, so we wrap with async
function to get a native promise instead.
2020-06-29 16:25:52 -07:00
Dmitry Gozman
18f9b4a219
test: add failing test for navigation corner cases ( #2746 )
2020-06-29 10:39:03 -07:00
Pavel Feldman
e920fde9f7
chore(rpc): bootstrap demo for rpc ( #2741 )
2020-06-27 11:32:27 -07:00
Pavel Feldman
db12ddebb3
chore(rpc): clear the page test spec ( #2736 )
2020-06-26 21:22:03 -07:00
Dmitry Gozman
b54303a386
fix(textContent): make page.textContent(selector) atomic ( #2717 )
...
We now query selector and take textContent synchronously. This
avoids any issues with async processing: node being recycled,
detached, etc.
More methods will follow with the same atomic pattern.
Drive-by: fixed selector engine names being sometimes case-sensitive
and sometimes not.
2020-06-26 16:32:42 -07:00
Dmitry Gozman
43f70ab978
test: add more failing tests with react recycle ( #2731 )
2020-06-26 16:31:51 -07:00
Pavel Feldman
02f7501725
chore(rpc): strongly-type the initializer, remove __init__ phase ( #2729 )
2020-06-26 12:28:27 -07:00
Pavel Feldman
18d6140d3e
chore(rpc): support routes and bindings ( #2725 )
2020-06-26 11:51:47 -07:00
Dmitry Gozman
064a0a1154
fix(webkit): do not swallow errors when returning by value ( #2723 )
...
We currently return undefined whenever we had an error trying
return the evaluation result by error. The most common error
is "execution context destroyed".
This produces very unexpected undefined from methods that do not
ever expect undefined. Instead, we should throw because we were
not able to return the result.
2020-06-26 09:50:57 -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
Pavel Feldman
bab6833232
chore: introduce the experimental rpc implementation ( #2720 )
2020-06-25 16:05:36 -07:00
Dmitry Gozman
807dc1f324
fix(crash): improve documentation for crash, reject waitForEvent ( #2694 )
2020-06-25 09:53:56 -07:00
Dmitry Gozman
39ce35e154
fix(errors): strict error handling around element operations ( #2567 )
...
- Gave all possible dom errors distinct names, and throw them on the node side.
- Separated errors into FatalDOMError and RetargetableDOMError.
Fatal errors are unrecoverable. Retargetable errors
could be resolved by requerying the selector.
- This exposed a number of unhandled 'notconnected' cases.
- Added helper functions to handle errors and ensure TypeScript catches
unhandled ones.
2020-06-24 15:12:17 -07:00
Dmitry Gozman
355305d31d
feat(screenshot): accept timeout, migrate to Progress, wait for visible ( #2679 )
...
Element screenshot now waits for the element to become visible and
throws on detach.
Both screenshot methods accept a timeout and capture logs using Progress.
Also, carefully handling exceptions and restoring the viewport.
2020-06-24 10:16:54 -07:00
Dmitry Gozman
d0a6e1a64e
fix(dom): make selectText and scrollIntoViewIfNeeded wait for visible ( #2628 )
...
All other methods wait for the element to be visible, so we should make
them behave similarly.
2020-06-23 13:02:31 -07:00
Joel Einbinder
9000ccb3b2
fix(click): don't timeout when innerWidth is modified ( #2669 )
...
We were evaluating `innerWidth` in the main context, where it could be modified.
2020-06-22 14:03:31 -07:00
Pavel Feldman
eac7dab8b7
fix(cors): allow intercepting cors requests on chromium ( #2643 )
2020-06-19 17:14:32 -07:00
Yury Semikhatsky
2251f9bedb
feat(webkit): bump to 1290 ( #2652 )
2020-06-19 16:35:14 -07:00
Dmitry Gozman
53f7f4e4e7
test: add redirect+extraHTTPHeaders test ( #2637 )
2020-06-18 18:06:10 -07:00
Dmitry Gozman
d0336ea5c2
fix(network): disallow intercepting redirects ( #2617 )
...
WebKit and Firefox are only able to continue redirects.
Firefox is faking it on the backend, so you can't even stall it.
Instead, we just do not fire routes for redirects on all browsers,
to avoid surprises.
2020-06-18 17:15:47 -07:00
Joel Einbinder
b88fabab13
test: add another test for browserContext.addInitScript ( #2285 )
2020-06-18 12:27:48 -07:00
Dmitry Gozman
971bd88922
fix(chromium): do not bring page to front before screenshot ( #2614 )
2020-06-18 10:52:08 -07:00
Dmitry Gozman
f581e84829
fix(css selector): handle missing spaces between [] and > ( #2612 )
2020-06-17 23:20:12 -07:00
Pavel Feldman
cc84506cbb
feat(electron): add a test for clipboard access ( #2606 )
2020-06-17 14:16:17 -07:00
Dmitry Gozman
4834e5653d
fix(firefox): bump firefox and fix network with service worker ( #2610 )
2020-06-17 14:13:56 -07:00
Dmitry Gozman
f9633ea9b7
fix(scrollIntoView): ensure similar behavior across browsers, handle errors ( #2599 )
2020-06-17 10:48:07 -07:00
Pavel Feldman
c220fc7f46
chore(logs): rework logs for simplicity ( #2592 )
2020-06-16 17:11:19 -07:00
Pavel Feldman
59d0f8728d
test(recorder): add recorder sanity tests ( #2582 )
2020-06-16 10:15:08 -07:00
Dmitry Gozman
98544381b2
test: disable flaky cookie test on Chromium Win ( #2562 )
2020-06-12 15:03:30 -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
39019e8863
test: unflake interception test ( #2558 )
2020-06-12 12:13:17 -07:00
Dmitry Gozman
c4e8720eb5
feat(debug): generate preview for ElementHandle ( #2549 )
...
This is a best-effort debugging feature - we try to generate preview asynchronously,
so it might not be available immediately.
2020-06-12 11:10:18 -07:00
Dmitry Gozman
defeeb9cee
test: await all promises in upload test ( #2557 )
...
Otherwise, we get unhandled promise rejection sometimes.
2020-06-12 10:39:33 -07:00
Dmitry Gozman
1bf9e65ef5
fix(log): include log name in progress recording ( #2550 )
2020-06-12 09:48:56 -07:00
Pavel Feldman
894826dec0
chore: form the debug script for authoring hints / helpers ( #2551 )
2020-06-11 18:18:33 -07:00
Dmitry Gozman
7ddf66418a
test: add a failing test with React rerender ( #2545 )
2020-06-11 15:19:35 -07:00
Dmitry Gozman
5e97acde0c
fix(oopif): make Page.addInitScript and Page.exposeBinding work for oopifs ( #2542 )
2020-06-11 11:41:36 -07:00
Dmitry Gozman
c99f0d1f98
feat(debug): more logs while waiting for stable, enabled, etc. ( #2531 )
2020-06-10 18:45:18 -07:00
Darío Kondratiuk
e3f34f6ae2
fix(selectOption): allow passing null to unselect all ( #2405 )
2020-06-10 09:37:29 -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
4faa1306b9
test: dump all logs in DEBUGP mode ( #2517 )
2020-06-09 18:55:57 -07:00
Dmitry Gozman
80705ff5e9
chore: simplify logging a bit ( #2512 )
...
This merges a few classes and stops inheriting from InnerLogger.
2020-06-09 16:11:17 -07:00
Dmitry Gozman
8c6c571f22
test: add iframe screenshot tests ( #2495 )
2020-06-09 12:59:49 -07:00
Pavel Feldman
9aa9d6bc1d
feat(downloads): accept downloads in persistent, allow specifying the downloadsPath ( #2503 )
2020-06-08 21:45:35 -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
b77a4b5840
test: increase total timeout when running multiple browsers ( #2490 )
2020-06-05 17:56:25 -07:00
Yury Semikhatsky
54f07f9bd6
test(capabilities): test that video tag can play video ( #2477 )
2020-06-05 17:39:24 -07:00
Joel Einbinder
28e0ce1bb1
feat(webkit): roll to 1269 ( #2486 )
2020-06-05 16:22:30 -07:00
Pavel Feldman
fb058ffe0d
feat(proxy): allow specifying proxy ( #2485 )
2020-06-05 13:50:15 -07:00
Dmitry Gozman
1d37a10558
chore: migrate navigations to Progress ( #2463 )
2020-06-04 16:43:48 -07:00
Dmitry Gozman
58e2ffc991
test: add more tests for text selectors in shadow dom ( #2473 )
2020-06-04 15:58:43 -07:00
Dmitry Gozman
d5c992e1db
chore: unify evaluations across browsers even more ( #2459 )
...
This moves all the logic around UtilityScript to javascript.ts.
Also uncovers a bug in WebKit where we cannot returnByValue after navigation.
2020-06-03 17:50:16 -07:00
Dmitry Gozman
1accb5141d
chore: convert more actions to Progress ( #2444 )
2020-06-03 11:23:24 -07:00
Dmitry Gozman
f188b0a174
chore: migrate most actions to Progress ( #2439 )
2020-06-03 09:14:53 -07:00
Dmitry Gozman
a644f0a881
feat(fill): wait for the element to be enabled/writable/visible ( #2435 )
2020-06-01 18:56:49 -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
454411062b
fix(oopif): race between detachedFromTarget and frameAttached ( #2419 )
...
During remote -> local transition, these two events come in unpredictable order, so we try to handle both cases. Also, remote frame detach was not handled at all.
2020-06-01 13:47:02 -07:00
Dmitry Gozman
de0bbd3031
chore: remove page pause support ( #2431 )
2020-06-01 11:14:16 -07:00
Andrey Lushnikov
e5875310db
fix(webkit): report event source ( #2430 )
...
This rolls webkit to r1250 where we report event source.
Fixes #2189
2020-06-01 10:12:46 -07:00
Dmitry Gozman
b7df4d57a4
chore: migrate wait tasks to Progress ( #2422 )
2020-06-01 08:54:18 -07:00
Pavel Feldman
c001facffc
feat(firefox): allow passing user prefs at launch time ( #2417 )
2020-05-31 09:28:57 -07:00
Dmitry Gozman
acf059fe00
fix(click): wait for button, input and select to be enabled before clicking ( #2414 )
2020-05-30 13:29:46 -07:00
Dmitry Gozman
8e4a1e7c67
fix(text selector): do not match text inside <head> ( #2413 )
...
We already skip <script> and <style> tags because they are not
the page content. Similar reasoning applies to <head> that has
content that is never rendered on the page.
2020-05-29 15:28:27 -07:00
Dmitry Gozman
d980ed7e7e
chore: introduce Progress concept ( #2350 )
...
A progress roughly corresponds to an api call. It is used:
- to collect logs related to the call;
- to handle timeout;
- to provide "cancellation token" behavior so that cancelable process can either
early-exit with progress.throwIfCanceled() or race against it with progress.race();
- to ensure resources are disposed in the case of a failure
with progress.cleanupWhenCanceled();
- (possibly) to log api calls if needed;
- (in the future) to augment async stacks.
2020-05-29 14:39:34 -07:00
Dmitry Gozman
4bd9b30376
test: add a test for clicking a label with pointer-events: none ( #2412 )
2020-05-29 13:46:57 -07:00
Pavel Feldman
5277fb9479
test: fix the CSP capability test ( #2394 )
2020-05-28 18:29:15 -07:00
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
Andrey Lushnikov
7981e4e3da
fix: support event source type in firefox ( #2390 )
...
References #2189
2020-05-28 14:38:47 -07:00
Andrey Lushnikov
3f97a9fb69
test: add failing test for event source ( #2382 )
...
References #2189
2020-05-27 22:52:34 -07:00
Dmitry Gozman
46508c6b87
test: try to unflake one more cookie test ( #2381 )
2020-05-27 22:17:42 -07:00
Andrey Lushnikov
0753c2d54b
test: hack in output directory cleanup for parallel runs ( #2378 )
2020-05-27 22:03:38 -07:00
Dmitry Gozman
4413138cc6
fix(fill): allow to clear number input ( #2376 )
2020-05-27 20:01:08 -07:00
Dmitry Gozman
11d53ad529
test: disable flaky CSP test on Firefox ( #2374 )
2020-05-27 19:59:49 -07:00
Dmitry Gozman
057ae14adc
feat: make browserServer.kill() wait for the process to exit ( #2375 )
...
This ensures we cleaned everything up.
2020-05-27 19:59:03 -07:00
Max Schmitt
9dfe9348ac
feat: Request.postDataJSON ( #2368 )
2020-05-27 18:43:49 -07:00
Pavel Feldman
e168fddac8
fix(evaluate): consistently serialize json values ( #2377 )
2020-05-27 17:19:05 -07:00
Dmitry Gozman
609bc4cfb0
chore: add stack trace utilities and tests ( #2371 )
2020-05-27 14:26:44 -07:00
Andrey Lushnikov
37ec3a6ae6
fix(types): properly export typescript types from packages ( #2364 )
...
Drive-by: move package tests from `//test/installation-tests` to
`//packages/installation-tests`
Fix #2349
2020-05-26 17:19:05 -07:00
Pavel Feldman
415b11487d
feat(webkit): roll webkit to r1242 ( #2361 )
2020-05-26 14:48:21 -07:00
Dmitry Gozman
d532cd5d9f
test: fix cookie tests on WebKit ( #2359 )
...
WebKit does not allow third party cookies.
2020-05-26 10:22:53 -07:00
Andrey Lushnikov
43eed027bd
chore: rename root index-for-dev.js into index.js ( #2337 )
2020-05-23 00:03:57 -07:00
Dmitry Gozman
79ec3c916e
test: unflake more cookie tests ( #2346 )
2020-05-22 17:20:42 -07:00
Dmitry Gozman
aac5bf24ec
fix(popups): do not override popup size from window features ( #2139 )
...
We usually force window size from the browser context. However,
popups that have window features insist on a specific window size,
so we respect that.
2020-05-22 15:56:37 -07:00
Dmitry Gozman
e2972ad5ba
feat(click): retry when the element it outside of the viewport ( #2330 )
...
The element might get animated into the viewport.
2020-05-22 11:15:57 -07:00
Pavel Feldman
5ee6494032
feat(evaluate): return user-readable error from evaluate ( #2329 )
2020-05-21 16:00:55 -07:00
Dmitry Gozman
0a8fa6e46c
test: unflake more cookies tests ( #2333 )
...
This is addressing a possible race between setting document.cookie and
cookies appearing in out-of-process cookie jar.
2020-05-21 15:37:52 -07:00
Dmitry Gozman
aae3f1e75d
feat(default context): support selected options for default context ( #2177 )
2020-05-21 15:13:16 -07:00
Dmitry Gozman
2f993018ea
test: disable flaky test on win firefox ( #2332 )
2020-05-21 15:06:19 -07:00
Andrey Lushnikov
505d94ab1a
chore: drop dependency on playwright-core in all our packages ( #2318 )
...
This patch:
- drops dependency on playwright-core in all our packages. Instead of
the dependency, packages are now built with `//packages/build_package.sh`
script.
- unifies `browsers.json` - now there's a single `//browsers.json` file
that is used to manage browser revisions.
This patch temporary switches canary publishing to `--dryn-run` from CI/CD so that we
can verify that it does sane things.
We'll unify all our package management scripts under `//packages/` in a
follow-up.
Fixes #2268
2020-05-21 13:18:15 -07:00
Joel Einbinder
b1c15e4539
test: add failing PageDown test ( #2326 )
...
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-05-21 07:37:27 -07:00
Pavel Feldman
aa0d844c76
chore: introduce utility script for evaluate helpers ( #2306 )
2020-05-20 15:55:33 -07:00
Dmitry Gozman
48440f7ed7
test: unflake fixtures test ( #2313 )
...
Drive-by: ensure we call onkill before manually exiting the process.
2020-05-20 14:58:27 -07:00
Dmitry Gozman
b17a73c184
test: try to unflake cookie test ( #2310 )
...
Happens on WebKit sometimes. There is probably a race between setting a cookie
and saving it in the cookie jar in another process.
2020-05-20 14:54:21 -07:00
Pavel Feldman
e558f0516b
chore: print the launch error message to console ( #2304 )
2020-05-20 00:10:10 -07:00
Andrey Lushnikov
e312845ba9
fix: less confusing error message ( #2305 )
...
Fixes #2283
2020-05-19 17:47:46 -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
Dmitry Gozman
b8410bd19e
test: unflake headful window features test ( #2302 )
2020-05-19 16:27:28 -07:00
Dmitry Gozman
de606b9553
fix(chromium): handle various exception values in pageerror ( #2293 )
2020-05-19 15:20:49 -07:00
Dmitry Gozman
481643409e
feat(debug): persist devtools preferences in Chromium ( #2266 )
...
We store devtools-preferences.json file in the downloaded browser directory.
2020-05-19 14:55:11 -07:00
Dmitry Gozman
fbccd328cc
test: disable firefox crash tests ( #2301 )
2020-05-19 14:54:13 -07:00
Dmitry Gozman
82cab094e8
feat(logging): add logging to websocket transport ( #2289 )
2020-05-18 19:00:38 -07:00
Andrey Lushnikov
f24696be62
feat: add page convenience methods for textContent and getAttribute ( #2235 )
...
This patch adds:
- `page.innerText()` / `frame.innerText()`
- `page.innerHTML()` / `frame.innerHTML()`
- `page.textContent()` / `frame.textContent()`
- `page.getAttribute()` / `frame.getAttribute()`
Fixes #2143
2020-05-18 17:58:23 -07:00
Dmitry Gozman
359cb3a740
fix(oopif): adopt main requests into oopifs ( #2284 )
...
Main request for an OOPIF starts in the parent session, and the oopif
session is create only after the response has been received. Therefore,
we should adopt the request after oopif session is created.
2020-05-18 17:13:51 -07:00
Pavel Feldman
2bd427ad1d
feat(exposeBinding): a more powerful exposeFunction with source attribution ( #2263 )
2020-05-18 14:28:06 -07:00
Pavel Feldman
99b7aaace8
chore: refactor injected script harness ( #2259 )
2020-05-15 15:21:49 -07:00
Andrey Lushnikov
a38ac3fb62
fix: report hash in page.url() ( #2252 )
...
Fixes #2247
2020-05-14 17:23:19 -07:00
Dmitry Gozman
e8e761f77f
chore: use internal BrowserOptions to unify browsers ( #2230 )
2020-05-14 13:22:33 -07:00
Pavel Feldman
17286ab712
feat(webkit): roll to r1228 ( #2232 )
2020-05-14 07:57:29 -07:00
Dmitry Gozman
76e106605f
fix(screenshot): use innerW/H instead of offsetW/H to determine viewport size ( #2229 )
...
When capturing a screenshot with null viewport, we determine the screenshot size
based on body.offsetHeight. This is a very large number for long pages. We should
use window.innerHeight instead.
2020-05-13 20:53:11 -07:00
Dmitry Gozman
2bca64a023
test: mark failing headful tests as such ( #2226 )
2020-05-13 18:33:07 -07:00
Pavel Feldman
a4b670464e
test: update download test failure expectation ( #2225 )
2020-05-13 18:32:43 -07:00
Dmitry Gozman
650d73445c
fix(actions): do not wait for the created popups ( #2219 )
...
Since we are recommending Promise.all pattern anyway, this special
logic just adds to the possibility of timeout if something goes wrong.
For example, Firefox sometimes send Page.willOpenNewWindowAsynchronously
later than the new target arrives and input action just hangs.
2020-05-13 17:20:33 -07:00
Dmitry Gozman
884860b803
test: unflake launcher test ( #2224 )
...
We throw an exception and then gracefully close the browser.
If something went wrong, we should timeout before the test times out,
kill the process and report the original exception.
2020-05-13 17:19:07 -07:00
Pavel Feldman
f63ea3ffd2
feat(downloads): expose suggested filename ( #2062 )
2020-05-12 19:23:08 -07:00
Dmitry Gozman
072dcba94a
api(viewport): do not allow isMobile and deviceScaleFactor for null viewports ( #2190 )
...
Also make sure we do not alter viewport when passed null.
2020-05-12 18:31:17 -07:00
Dmitry Gozman
6361e07ae4
fix(docs): clarify repeating calls to setHTTPCredentials ( #2212 )
2020-05-12 18:29:55 -07:00
Dmitry Gozman
28845e5ccc
feat(firefox): bump and use context setters ( #2194 )
2020-05-12 15:13:48 -07:00
Pavel Feldman
cb465bc698
fix(abort): abort waiting with error upon disconnect ( #2204 )
2020-05-12 13:38:24 -07:00
Pavel Feldman
3f8dfed67f
feat(electron): add app.firstWindow convenience method ( #2195 )
2020-05-12 08:43:41 -07:00
Pavel Feldman
ffe7084652
feat(electron): experimental electron support ( #2166 )
2020-05-11 18:00:33 -07:00
Dmitry Gozman
a2bee2ca73
fix(launch): handle timeout and exceptions during launch ( #2185 )
2020-05-11 15:00:13 -07:00
Dmitry Gozman
8c083486a0
fix(launch): handle websocket connect exceptions ( #2184 )
2020-05-11 13:49:57 -07:00
Yury Semikhatsky
617a00d45f
test(webkit): mark strict cookie tests as passing on linux ( #2164 )
2020-05-11 12:15:48 -07:00
Pavel Feldman
c5b0baacd1
chore: remove main index.js from playwright-core ( #2178 )
2020-05-11 09:38:09 -07:00
Darío Kondratiuk
437d1b6247
test: fix should poll on interval test ( #2180 )
2020-05-11 08:00:53 -07:00
Dmitry Gozman
ae8d97cdf9
feat(persistent context): ensure initial about:blank ( #2161 )
...
We declare only the initial about:blank to be a supported usecase, so that
we can support options for the default context in the future.
2020-05-10 15:23:53 -07:00
Pavel Feldman
8e59031078
chore: introduce debugAssert ( #2160 )
2020-05-08 10:37:54 -07:00
Joel Einbinder
83aff38cea
feat(webkit): roll to 1124 ( #2156 )
2020-05-08 10:02:49 -07:00
Joel Einbinder
436bc5cadd
test: update golden values in keyIdentifier test ( #2155 )
2020-05-08 04:51:42 -07:00
Joel Einbinder
1b54716791
test(webkit): add failing keyIdentifier test ( #2150 )
2020-05-08 04:20:17 -07:00
Pavel Feldman
755ef11691
test: add focus traversal test ( #2141 )
2020-05-07 16:10:29 -07:00
Pavel Feldman
7a8dd2c361
feat(console): allow page.on('console', console.log) ( #2145 )
2020-05-07 15:34:09 -07:00
Dmitry Gozman
51fe84922c
fix(css selector): support comma-separated selector lists ( #2120 )
2020-05-07 13:36:54 -07:00
Dmitry Gozman
c49a6d744f
test: add a test for response coming from service worker ( #2138 )
2020-05-07 12:28:47 -07:00
Dmitry Gozman
33ebe66ad4
fix(webkit): allow contenttype with charset in interception ( #2108 )
2020-05-04 21:49:54 -07:00
Pavel Feldman
1c17929bd8
chore: add input logging and timeout debugging hints ( #2109 )
2020-05-04 21:44:33 -07:00
Pavel Feldman
f6210ae996
fix(webkit): click moving targets on windows ( #2101 )
2020-05-04 16:30:19 -07:00
Dmitry Gozman
963dc72dd2
devops: add headful linux bot ( #2060 )
2020-05-04 15:15:51 -07:00
Pavel Feldman
710c156d48
fix(chromium): disable same site by default and improved controls ( #2097 )
2020-05-04 13:43:44 -07:00
Pavel Feldman
bcce48362a
api(waitForSelector): make "state: visible" default, includes rename to state ( #2091 )
2020-05-04 11:03:44 -07:00
Pavel Feldman
08d713973e
test: add third party cookies test ( #2073 )
2020-05-04 09:14:42 -07:00
Yury Semikhatsky
03ca297890
fix(webkit): make click work with cross-process _blank target ( #2083 )
2020-05-02 10:57:33 -07:00
Pavel Feldman
f2fcb2b017
test(webkit): test cross-process nav w/ _blank target ( #2080 )
2020-05-02 07:51:23 -07:00
Pavel Feldman
f8bea85c88
feat(webkit): disable pause on click ( #2077 )
2020-05-01 12:59:18 -07:00
Andrey Lushnikov
a9f0c40af3
feat(testrunner): improvements to testrunner ( #2070 )
...
This patch:
- teaches test runner to understand custom argument spelling, e.g. `--file=evalu` and `-j10`
- fixes `--file` filter to actually focus file paths instead of focusing
all tests with given path
2020-05-01 10:09:45 -07:00
Dmitry Gozman
d7a1e013c6
fix(chromium): do not wait forever for navigations that target another tab/download ( #2068 )
2020-04-30 21:24:03 -07:00
Pavel Feldman
9c67ce5289
test: simplify pausing tests ( #2056 )
2020-04-30 14:13:47 -07:00
Dmitry Gozman
848ea69a8a
test: unflake launcher test ( #2049 )
2020-04-29 22:20:06 -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
Pavel Feldman
9f62f29946
feat(install): use shared installation folder by default ( #2044 )
2020-04-29 18:59:20 -07:00
Pavel Feldman
c55db6d315
browser(webkit): roll webkit to 1213 ( #2045 )
2020-04-29 18:40:18 -07:00
Yury Semikhatsky
78b44ed2a0
fix: report new window downloads ( #2019 )
2020-04-29 18:36:24 -07:00
Yury Semikhatsky
5993a6a0e0
fix: throw from eval methods if >1 argument is passed ( #2043 )
2020-04-29 18:35:04 -07:00
Andrey Lushnikov
062a8361c8
test: cleanup installation tests from top-level env variables ( #2022 )
2020-04-29 17:10:44 -07:00
Pavel Feldman
c01e554edd
test: add more pausing tests ( #2040 )
2020-04-29 16:17:03 -07:00
Pavel Feldman
534857269b
fix(console): respect repeat count in webkit ( #2032 )
2020-04-29 12:13:57 -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
Pavel Feldman
6c94f604d8
feat(chromium): roll to r763809 ( #2028 )
2020-04-29 08:44:09 -07:00
Yury Semikhatsky
c7b2c87f72
test: add failing test for creating two headful contexts ( #1994 )
2020-04-28 14:20:33 -07:00
Dmitry Gozman
7f5d89009c
test(click): add a test for 'Element has moved' exception ( #2017 )
2020-04-28 11:58:22 -07:00
Pavel Feldman
62966ba963
test(permissions): add chromium test for clipboard permissions ( #2016 )
2020-04-28 11:41:44 -07:00
Pavel Feldman
2b5ff83eaf
test: add failing headful test ( #2013 )
2020-04-28 09:48:44 -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
Pavel Feldman
d8cccbdb67
test: add goto after click test ( #1999 )
2020-04-27 17:16:32 -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
030c217ae8
test: add a test for selectors with spaces in css attributes ( #2001 )
2020-04-27 13:47:09 -07:00
Pavel Feldman
7f8aa703dd
api(waitFor): remove waitFor, use specialized wait functions ( #1995 )
2020-04-27 12:08:29 -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
Yury Semikhatsky
f58d909db4
fix(firefox): use separate processes for pages in different contexts ( #1976 )
2020-04-27 10:13:43 -07:00
Yury Semikhatsky
f386fa9415
test: add failing test for new page downloads ( #1984 )
2020-04-25 09:35:35 -07:00
Yury Semikhatsky
f9bd1d0720
fix(webkit): fix blob downloads on mac ( #1972 )
2020-04-25 08:46:58 -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
Yury Semikhatsky
7c9762fae9
fix: support blob downloads ( #1954 )
2020-04-23 20:04:19 -07:00
Andrey Lushnikov
62966144bd
test: mark test as flaky on FFOX
2020-04-23 19:50:00 -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
Ross Wollman
dc23c567c4
tests(downloads): add a test for Blob downloads ( #1936 ) ( #1939 )
2020-04-23 13:02:37 -07:00
Ross Wollman
53c78a8a29
fix(downloads): fix acceptDownloads complaint ( #1777 ) ( #1923 )
2020-04-22 17:02:15 -07:00
Yury Semikhatsky
00e8d88777
fix: do not auto wait for downloads ( #1921 )
2020-04-22 15:08:39 -07:00
Yury Semikhatsky
b7afbf819f
fix(webkit): ignore WebSocket certificate errors on Mac ( #1900 )
2020-04-22 12:41:39 -07:00
Pavel Feldman
6ecac8c164
chore: restore networkidle0 alias ( #1920 )
2020-04-22 10:52:01 -07:00
Dmitry Gozman
95b8f61652
test: add more download tests ( #1917 )
2020-04-22 10:15:02 -07:00
Andrey Lushnikov
2926d33a47
test: disable flaky firefox tests ( #1912 )
2020-04-22 00:07:02 -07:00
Andrey Lushnikov
2d68830411
feat(testrunner): support --file to filter tests by test file name. ( #1903 )
2020-04-21 16:47:38 -07:00
Andrey Lushnikov
89b2fe5f38
feat: introduce PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD env variable ( #1892 )
2020-04-21 16:47:16 -07:00
Pavel Feldman
5b085fdf03
feat(logger): introduce context-level logger ( #1896 )
2020-04-20 23:24:53 -07:00
Dmitry Gozman
5d986317cf
test: add a test for non-navigation downloads ( #1895 )
2020-04-20 20:23:09 -07:00
Pavel Feldman
0656771167
api(networkidle): remove networkidle2 ( #1883 )
2020-04-20 16:52:26 -07:00
Dmitry Gozman
8ca120f8ab
fix(tests): fix DEBUGP when running in parallel ( #1886 )
2020-04-20 15:11:15 -07:00
Yury Semikhatsky
fb45c75b98
feat(webkit): simulate device orientation events ( #1852 )
2020-04-20 14:43:44 -07:00
Yury Semikhatsky
93c9083629
tests(firefox): unskip "should report shiftKey" on Linux&Win ( #1833 )
2020-04-20 14:43:26 -07:00
Dmitry Gozman
d1a95518be
chore: remove old TODOs, add a test ( #1879 )
2020-04-20 13:01:06 -07:00
Dmitry Gozman
a0003354d8
test: add a test for sourceURL in exception stacks ( #1880 )
2020-04-20 13:00:31 -07:00
Dmitry Gozman
649f37f885
fix(pageerror): report correct error message and stack ( #1862 )
...
The error stack matches the browser format.
2020-04-20 11:37:02 -07:00
Dmitry Gozman
effeaaf852
fix(click): force any hover effects before waiting for hit target ( #1869 )
...
This way, any on-hover animations or click blockers will be accounted for.
2020-04-20 10:07:59 -07:00
Pavel Feldman
1f43ae692f
feat(logging): introduce logger sink api ( #1861 )
2020-04-20 07:52:26 -07:00
Pavel Feldman
022bc67c07
chore(chromium): allow passing --remote-debugging-port for debugging ( #1857 )
2020-04-18 19:06:42 -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
cf415bb45a
test: add failing popup tests ( #1849 )
2020-04-17 15:20:50 -07:00
Pavel Feldman
2a866d66cb
test(network): rebaseline request failed test on win
2020-04-17 17:38:36 -08:00
Yury Semikhatsky
2b96b85e05
fix(firefox): throw error when added script blocked by CSP ( #1841 )
2020-04-17 08:51:54 -07:00
Pavel Feldman
a248430af8
reapply api(waitUntil): remove waitUntil options from the actions ( #1842 )
2020-04-16 20:31:04 -07:00
Andrey Lushnikov
3151ea22e3
test: disable flaky fixtures test ( #1839 )
2020-04-16 18:46:24 -07:00
Andrey Lushnikov
31460b18b8
Revert "api(waitUntil): remove waitUntil options from the actions ( #1834 )" ( #1840 )
...
This reverts commit d0b8710670 .
Reason: multiple test failures on all Linux bots
- https://app.circleci.com/pipelines/github/microsoft/playwright/613/workflows/50dc6e2d-23b0-41d2-9765-42983b0ed91d/jobs/610
- https://travis-ci.com/github/microsoft/playwright/builds/160648417
- https://github.com/microsoft/playwright/pull/1839/checks?check_run_id=594015893
2020-04-16 18:46:10 -07:00
Andrey Lushnikov
51b8685a8c
feat(testrunner): support --repeat CLI flag to repeat tests ( #1828 )
...
This allows you to run `npm run cunit -- --repeat 10` to run
tests multiple times.
2020-04-16 18:09:25 -07:00
Pavel Feldman
d0b8710670
api(waitUntil): remove waitUntil options from the actions ( #1834 )
2020-04-16 16:04:10 -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
Yury Semikhatsky
04ed68384b
tests(firefox): unskip network idle tests ( #1832 )
2020-04-16 14:25:19 -07:00
Yury Semikhatsky
55c01da005
fix(firefox): fire "requestfailed" event on network errors ( #1817 )
2020-04-16 13:35:16 -07:00
Dmitry Gozman
f5942295d4
feat(api): wait for popups and downloads when performing actions ( #1744 )
2020-04-16 13:09:24 -07:00
Joel Einbinder
036f9e50fa
fix(webkit): allow fufilling requests to redirects ( #1830 )
2020-04-16 12:36:00 -07:00
Pavel Feldman
5ec2c58a75
test(selectText): restore firefox tests ( #1829 )
2020-04-16 12:31:22 -07:00
Pavel Feldman
2280126344
api(setInputFiles): introduce page/frame helpers, document, break compat ( #1818 )
2020-04-16 10:25:28 -07:00
Andrey Lushnikov
26018aae25
feat(chromium): roll Chromium to r759486 ( #1823 )
...
This roll includes:
- https://crrev.com/759486 - devtools(protocol): Input.dispatchMouseEvent to properly find target widget host
Fixes #1240
2020-04-16 09:38:28 -07:00
Joel Einbinder
1b0467fb86
fix(chromium): get headers from browser process when intercepting ( #1809 )
2020-04-15 23:18:16 -07:00
Dmitry Gozman
ba36860d79
feat(api): page.unroute to remove routes ( #1813 )
2020-04-15 19:55:22 -07:00
Pavel Feldman
0426354451
feat(firefox): roll to r1082 ( #1819 )
2020-04-15 19:50:04 -07:00
Yury Semikhatsky
041406a664
fix(firefox): enable remaining focus tests ( #1803 )
2020-04-15 18:44:38 -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
Andrey Lushnikov
0ba823dd6f
feat: introduce page.on('crash') event ( #1782 )
...
Currently, whenever the page crashes, it emits an `'error'` event.
Error event is a special type of event in node.js; if unhandled,
it crashes the process.
Instead of emitting `'error'` event, this patch switches to emitting
`'crash'` event. Playwright users are free to handle the event
however they like, or just to ignore it.
2020-04-15 00:04:35 -07:00
Andrey Lushnikov
aeabf9d707
test: mark cookies test as flaky on win ( #1796 )
2020-04-15 00:04:15 -07:00
Yury Semikhatsky
451a6b7904
test: add more focus() tests ( #1793 )
2020-04-14 18:57:48 -07:00
Yury Semikhatsky
b232e004f5
fix(firefox): make ElementHandle.scrollIntoViewIfNeeded pass ( #1786 )
2020-04-14 18:24:17 -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
Andrey Lushnikov
b2c65db37e
test: mark permissions tests as flaky on Linux & Firefox ( #1791 )
2020-04-14 17:00:56 -07:00
Andrey Lushnikov
ea7aadba2b
devops: bump total tests timeout to 30 minutes
2020-04-14 16:31:15 -07:00
Yury Semikhatsky
24d51cb2bb
test: delete "Node.constructor.name in utility context" ( #1788 )
2020-04-14 15:36:11 -07:00
Dmitry Gozman
274c6c1450
test(chromium): add more oopif tests ( #1685 )
2020-04-14 13:00:10 -07:00
Pavel Feldman
cd5a48ffcb
test(geolocation): test context isolation ( #1770 )
2020-04-13 21:43:06 -07:00
Yury Semikhatsky
1c1d81cf3a
fix(firefox): make scroll&click tests pass ( #1760 )
2020-04-13 18:30:00 -07:00
Dmitry Gozman
29a6cdff6b
fix(tests): fix a race with golden setup ( #1757 )
...
When running multiple browsers, we should take the golden information from the state.
2020-04-13 14:12:44 -07:00
Dmitry Gozman
9542f47511
feat(selectors): deep selector which pierces open shadow roots ( #1738 )
2020-04-13 13:04:27 -07:00
Dmitry Gozman
62a493ecbd
chore(test): move more test options to state ( #1761 )
...
This reduces the number of globals and allows to configure more options dynamically.
2020-04-12 22:19:26 -07:00
Joel Einbinder
a7572c7f09
feat: nicer error message for page.addScriptTag ( #1754 )
2020-04-12 18:46:53 -07:00
Joel Einbinder
8536fa885e
test(interception): add redirect test, failing in webkit and firefox ( #1753 )
2020-04-12 18:45:55 -07:00
Pavel Feldman
97c4054b7a
test(websockets): add web sockets tests ( #1758 )
2020-04-12 18:28:42 -07:00
Dmitry Gozman
277c7d872f
test: close extra browser ( #1756 )
2020-04-12 15:30:53 -07:00
Pavel Feldman
368e1cc49b
chore(input): refactor keyboard layout, extract pure layout ( #1681 )
2020-04-11 00:24:17 -07:00
Pavel Feldman
9249f33709
feat(webkit): roll WebKit, migrate to Playwright.exe ( #1749 )
2020-04-10 21:02:28 -07:00
Dmitry Gozman
bf656ea318
fix(tests): accomodate isplaywrightready ( #1746 )
2020-04-10 20:31:50 -07:00
Yury Semikhatsky
a1ffed6052
fix(firefox): do not create first window on start ( #1727 )
2020-04-10 14:12:30 -07:00
Pavel Feldman
3584205086
fix(chromium): associate navigation requests with navigations ( #1724 )
2020-04-09 19:03:06 -07:00
Dmitry Gozman
42beb3784f
feat(test): introduce test.config.js ( #1725 )
...
This file encapsulate everything specific to playwright testing. Now the general test.js can be reused for other projects.
2020-04-09 18:14:29 -07:00
Pavel Feldman
78abf5cb40
feat(api): add getAttribute, innerText, innerHTML, textContent ( #1717 )
2020-04-09 16:49:23 -07:00
Dmitry Gozman
1b366b0fc5
fix(test): properly handle custom executable path ( #1723 )
2020-04-08 19:34:33 -07:00
Dmitry Gozman
2d57fff0be
fix(tests): fix multiple browsers tests ( #1718 )
...
- Use a server only once, not once per browser.
- Avoid require cache for test files.
- Improve testrunner hooks debugging.
2020-04-08 15:54:17 -07:00
Dmitry Gozman
ade9d23c28
test: remove module.export.describe wrapper ( #1716 )
2020-04-08 15:19:09 -07:00
Dmitry Gozman
2ef8e26602
test: structure tests to use environments, closer to end user ( #1713 )
2020-04-08 14:17:34 -07:00
Dmitry Gozman
be06bb0139
test: mark headful test as slow ( #1710 )
2020-04-08 13:13:55 -07:00
Dmitry Gozman
0ff2e6a03e
test: move api coverage to a spec file ( #1703 )
2020-04-07 22:04:23 -07:00
Dmitry Gozman
af01d15f62
test: slim down test utils ( #1701 )
2020-04-07 19:15:48 -07:00
Dmitry Gozman
118333ad37
test: fix event coverage on Chromium ( #1693 )
...
Chromium events were mistakenly attributed to Firefox.
2020-04-07 16:21:31 -07:00
Yury Semikhatsky
a7ae205254
feat(firefox): support downloads ( #1689 )
2020-04-07 15:01:42 -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
Dmitry Gozman
e0c8fbf1a6
test: put test runner api on global, remove unused parameters ( #1684 )
2020-04-07 08:10:31 -07:00
Pavel Feldman
889cf8f7b6
fix(input): climb dom for pointer-events:none targets ( #1666 )
2020-04-06 20:44:54 -07:00
Pavel Feldman
3dc14eddaf
fix(colorScheme): make light scheme default on all browsers ( #1668 )
2020-04-06 19:49:33 -07:00
Dmitry Gozman
cd39053ccc
feat(testrunner): make it easier to setup golden matcher ( #1682 )
2020-04-06 18:01:56 -07:00
Dmitry Gozman
f2b13c0e93
chore(testrunner): split TestRunner into parts ( #1679 )
2020-04-06 17:21:42 -07:00
Dmitry Gozman
aeeac55732
feat(chromium): support oopifs ( #1664 )
...
Splits CRPage into CRPage and FrameSession, carefully broadcasting or picking the right session for each operation.
2020-04-06 15:09:43 -07:00
Dmitry Gozman
5673fd7040
feat(firefox): bump to 1071 ( #1670 )
2020-04-05 08:59:25 -07:00
Andrey Lushnikov
65ca87cd9a
fix: fix PLAYWRIGHT_BROWSERS_PATH treatment ( #1662 )
...
Drive-by: introduce installation tests that use `npm pack`
to simulate installation from NPM registry.
Fixes #1651
2020-04-03 23:16:14 -07:00
Pavel Feldman
17039f1649
fix(webkit): fix non-mac screenshots w/ dsf ( #1665 )
2020-04-03 21:54:43 -07:00
Dmitry Gozman
a91304a37a
feat(selectors): attribute selectors pierce open shadow roots ( #1656 )
...
References #1375 .
2020-04-03 20:47:08 -07:00
Pavel Feldman
b89df07247
test: add device scale factor screenshot tests ( #1660 )
2020-04-03 15:48:29 -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
Pavel Feldman
75571e8eb8
feat(downloads): support downloads on cr and wk ( #1632 )
2020-04-02 17:56:14 -07:00
Joel Einbinder
3d6d9db44a
fix: wait for the process to close when closing the browser ( #1629 )
2020-04-02 16:57:12 -07:00
Max Schmitt
692f4db0a7
devops(ci): added job for testing package installations ( #1572 )
...
Closes #1518
2020-04-02 11:25:03 -07:00
Yury Semikhatsky
7c2ddc2e00
feat(firefox): support timezone override ( #1578 )
2020-04-01 22:10:56 -07:00
Dmitry Gozman
c345cfee54
test: disable one flaky test on Chromium ( #1633 )
2020-04-01 19:15:38 -07:00
Dmitry Gozman
14dbf4a20b
chore(tests): meaningful split between test.js and playwright.spec.js ( #1630 )
...
CLI handling goes to test.js.
Everything about running tests goes to playwright.spec.js.
This will help isplaywrightready and future jest integration.
2020-04-01 18:02:43 -07:00
Pavel Feldman
e241c1bef8
chore: remove web mode ( #1625 )
2020-04-01 14:42:47 -07:00
Yury Semikhatsky
c218d8c25f
fix(firefox): isolate ignoreHTTPSErrors setting between contexts ( #1617 )
2020-04-01 12:59:48 -07:00
Dmitry Gozman
a7b61a09be
fix(text selector): by default, do a substring match ( #1618 )
2020-03-31 23:04:04 -07:00
Joel Einbinder
34610f23f2
chore(tests): use public types for the tests ( #1600 )
...
Using the public types in our test will help us dogfood them. Typechecking isn't enabled yet, but I am working on it.
2020-03-31 15:43:20 -07:00
Pavel Feldman
307b33ab7d
feat(chromium): roll to r754895 ( #1610 )
2020-03-31 13:23:08 -07:00
Joel Einbinder
13a6c89dee
fix(test): actually test if page.waitFor accepts arguments ( #1599 )
2020-03-31 09:13:44 -07:00
Joel Einbinder
d130479e3c
feat(webkit): roll webkit to 1184 ( #1570 )
2020-03-30 14:49:40 -07:00
Pavel Feldman
1f08b72a27
test: add web socket leak test coverage ( #1586 )
2020-03-30 13:49:52 -07:00
Stuart Lang
a007caef5c
Fixed small typos ( #1588 )
2020-03-30 09:03:13 -07:00
Dmitry Gozman
b6166c9669
chore(testrunner): introduce Location class ( #1585 )
...
Drive-by: fix an edge when testing continued after termination.
2020-03-29 21:38:30 -07:00
Dmitry Gozman
a41836b1f1
chore(testrunner): introduce TestRun ( #1582 )
2020-03-28 14:25:57 -07:00
Dmitry Gozman
b85ab891a1
chore(testrunner): make most modifiers external ( #1581 )
2020-03-28 08:49:00 -07:00
Dmitry Gozman
f72b6b4778
test: try to unflake fixtures tests ( #1574 )
2020-03-27 20:29:24 -07:00
Pavel Feldman
b4a20140a2
test: add failing FF test around ignore https ( #1576 )
2020-03-27 17:21:44 -07:00
Pavel Feldman
4e89939ece
chore: do not try/catch buffer.concat ( #1575 )
2020-03-27 15:16:17 -07:00
Dmitry Gozman
72ae3a9165
feat(firefox): emulate device size ( #1565 )
2020-03-26 21:40:38 -07:00
Andrey Lushnikov
f503672e5f
test(firefox): enable configurable args test ( #1564 )
...
This was fixed with 9d0f465ebe
2020-03-26 18:27:35 -07:00
Yury Semikhatsky
59fa2cba90
test(firefox): enable locale tests ( #1562 )
2020-03-26 18:14:38 -07:00
Dmitry Gozman
b473d9dcf7
chore(firefox): remove FFPage._initialize to ensure early initialization ( #1554 )
2020-03-26 16:13:11 -07:00
Dmitry Gozman
f420cbb528
test: fix race in 'should respect routes from browser context' test ( #1559 )
...
We should await the popup, otherwise there is no guarantee that
request has already happened.
2020-03-26 15:55:01 -07:00
Andrey Lushnikov
b24262b46f
feat(browser): roll Firefox to r1059 ( #1551 )
...
This fixes flaky user gesture in evaluation.
2020-03-26 01:16:07 -07:00
Andrey Lushnikov
f2d72b3d95
test: enable flaky worker tests on Firefox ( #1548 )
...
Drive-by: remove dead websocket test.
2020-03-25 22:46:27 -07:00
Andrey Lushnikov
ece43aec57
test: mark 100mb evaluate test as slow ( #1546 )
2020-03-25 22:05:18 -07:00
Dmitry Gozman
bce8fc1343
feat(selectors): allow running selectors in main world ( #1533 )
2020-03-25 20:59:48 -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
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
Pavel Feldman
ef9e04d399
fix(permissions): fix notifications permissions on firefox ( #1531 )
2020-03-25 11:52:50 -07:00
Yury Semikhatsky
2d5b701662
test(firefox): fix should close browser with beforeunload page ( #1532 )
2020-03-25 08:29:29 -07:00
Pavel Feldman
5bde0b59b5
feat(auth): fix firefox auth flake ( #1525 )
2020-03-24 23:12:07 -07:00
Dmitry Gozman
4f89e4031c
test: fix flaky interception test ( #1508 )
2020-03-24 09:08:29 -07:00
Yury Semikhatsky
7efff97753
fix(chromium): properly handle failures to set override ( #1498 )
2020-03-23 17:23:47 -07:00
Pavel Feldman
c0c9b7f137
test: make debugp collect IO (take 2) ( #1493 )
2020-03-23 15:08:02 -07:00
Yury Semikhatsky
afbc2f272a
test(firefox): enable passing "userDataDir option should restore cookies" ( #1487 )
2020-03-23 14:59:29 -07:00
Dmitry Gozman
de0a2d1081
api(waitForLoadState): move waitUntil to be a first parameter ( #1490 )
2020-03-23 13:51:11 -07:00
Yury Semikhatsky
45a175d8fe
fix(chromium): ignore lifecycle events for the initial empty page ( #1486 )
2020-03-23 13:50:04 -07:00
Pavel
1ddf05113b
Revert "test: make debugp collect IO ( #1485 )"
...
This reverts commit b1bebdad2e .
2020-03-23 13:48:22 -07:00
Pavel Feldman
b1bebdad2e
test: make debugp collect IO ( #1485 )
2020-03-23 13:42:51 -07:00
Dmitry Gozman
15fddb5177
api(click): rename offset to position ( #1488 )
...
To allow for features like position: 'center' or similar.
2020-03-23 12:05:08 -07:00
Pavel Feldman
15ebe1c339
feat(exposeFunction): implement context-level expose on firefox ( #1478 )
2020-03-22 22:45:15 -07:00
Pavel Feldman
23e5d80e06
test: uncomment slow ff tests ( #1479 )
2020-03-22 22:16:39 -07:00
Pavel Feldman
c68cee9fb7
feat(offline): implement offline in firefox ( #1476 )
2020-03-22 15:34:30 -07:00
Dmitry Gozman
6e8895fa08
fix(firefox): make interception, locale and geolocation work on browser context level ( #1472 )
2020-03-22 08:56:50 -07:00
Dmitry Gozman
3f90c09e6d
tests: mark popup tests as passing on Firefox ( #1466 )
2020-03-21 19:56:33 -07:00
Pavel Feldman
1b08797c6f
tests(ff): uncomment a couple of firefox tests ( #1465 )
2020-03-21 17:58:33 -07:00
Dmitry Gozman
670ce7a591
chore: remove various watchers, use FrameTask directly ( #1460 )
2020-03-21 13:02:37 -07:00
Dmitry Gozman
60a248ef42
test: add test for Map as eval argument ( #1457 )
2020-03-20 21:24:34 -07:00
Yury Semikhatsky
34cc358ad3
tests(webkit): reenable should await promise from popup ( #1447 )
2020-03-20 21:22:48 -07:00
Dmitry Gozman
e115e8e2a9
tests: mark tests that launch() twice or use fixtures as slow ( #1455 )
2020-03-20 19:49:35 -07:00
Pavel Feldman
5a42cbd491
fix(permissions): manage permissions on the proxy level in webkit ( #1451 )
2020-03-20 19:45:35 -07:00
Pavel Feldman
e210e5601c
feat(lang): emulate language on firefox ( #1453 )
2020-03-20 19:32:27 -07:00
Pavel Feldman
c539325615
feat(geo): implement geo override in ff ( #1438 )
2020-03-20 19:17:46 -07:00
Yury Semikhatsky
bae56ea9d3
fix(chromium): support main resource request interception for popups ( #1449 )
2020-03-20 16:13:42 -07:00
Yury Semikhatsky
4320d4ba83
test: fix link navigation test so that it passes in Chromium ( #1448 )
2020-03-20 15:45:20 -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
Joel Einbinder
825555cddf
types: better types ( #1166 )
...
This generates typescript definitions based on the api.md, instead of autogenerating them from the typescript source code.
Now types
- only include the public api
- work with older versions of typescript
- include descriptions
- are more consistent
- are more complete
#6
2020-03-20 01:30:35 -07:00
Yury Semikhatsky
535b484637
api(context): get rid of PageEvent ( #1433 )
2020-03-19 16:25:12 -07:00
Yury Semikhatsky
3ed9970b33
api(chromium): add ChromiumBrowserContext.serviceWorkers() ( #1416 )
2020-03-19 16:10:24 -07:00
Andrey Lushnikov
f5ecbff16e
devops: remake downloading logic ( #1419 )
...
This patch:
- removes `browserType.downloadBrowserIfNeeded()` method. The method
turned out to be ill-behaving and cannot not be used as we'd like to (see #1085 )
- adds a `browserType.setExecutablePath` method to set a browser
exectuable.
With this patch, we take the following approach towards managing browser downloads:
- `playwright-core` doesn't download any browsers. In `playwright-core`, `playwright.chromium.executablePath()` returns `null` (same for firefox and webkit).
- clients of `playwright-core` (e.g. `playwright` and others) download browsers one way or another.
They can then configure `playwright` with executable paths and re-export the `playwright` object to their clients.
- `playwright`, `playwright-firefox`, `playwright-chromium` and `playwright-webkit` download
browsers. Once browsers are downloaded, their executable paths are saved to a `.downloaded-browsers.json` file. This file is read in `playwright/index.js` to configure browser executable paths and re-export the API.
- special case is `install-from-github.js` that also cleans up old browsers.
2020-03-19 11:43:35 -07:00
Pavel Feldman
2af07ce475
chore: rework disposers into a frame task ( #1413 )
2020-03-18 20:05:35 -07:00
Dmitry Gozman
7bd924673a
fix(PageEvent): properly wait for initial navigation in chromium and webkit ( #1412 )
2020-03-18 17:14:18 -07:00
Dmitry Gozman
dd850ada89
api(eval): allow non-toplevel handles as eval arguments ( #1404 )
2020-03-18 10:41:46 -07:00
Pavel Feldman
049b336800
api(devices): extract isMobile/hasTouch from viewport ( #1415 )
2020-03-17 18:21:02 -07:00
Joel Einbinder
39e5eb7eda
feat(devices): remove name from device objects ( #1414 )
2020-03-17 16:04:42 -07:00
Pavel Feldman
e4225adcc0
feat(permissions): make origin optional ( #1406 )
2020-03-17 15:32:50 -07:00
Darío Kondratiuk
840146273e
test(web): Remove unused variable ( #1410 )
2020-03-17 09:05:33 -07:00
Dmitry Gozman
aa32d351be
fix(tests): remove flaky load event from auto-waiting tests ( #1399 )
...
We do not guarantee that click resolves before load event comes.
Theoretically, inserting two tasks before resolving load should help,
but seems like a strange contract.
Drive-by: move auto waiting tests to a separate file.
2020-03-16 18:33:39 -07:00
Pavel Feldman
64b175ce10
api(waitForLoadState): restore it ( #1390 )
2020-03-16 14:39:44 -07:00
Dmitry Gozman
6731d37546
api(network): replace redirectChain with redirectedFrom/redirectedTo ( #1401 )
2020-03-16 13:31:06 -07:00
Joel Einbinder
6dcd6a6eec
fix(types): jsHandle.getProperty should never resolve to null ( #1402 )
...
Added a test to confirm that this was dead code.
2020-03-16 13:23:04 -07:00
Pavel Feldman
e4991a1489
tests: add some failing page event tests ( #1394 )
2020-03-14 19:14:46 -07:00
Pavel Feldman
e692dd6e62
api(cdp): rename ChromiumSession to CDPSession ( #1380 )
2020-03-13 16:16:54 -07:00
Dmitry Gozman
69be12ae12
api(route): pass Route object instead of Request to route handlers ( #1385 )
...
References #1348 .
2020-03-13 14:30:40 -07:00
Dmitry Gozman
601d57a300
test: add a test for popup with window features ( #1381 )
2020-03-13 13:08:35 -07:00
Dmitry Gozman
9b86c631c8
api: make BrowserContext.pages() synchronous ( #1369 )
...
Returns all pages which have been initialized already.
References #1348 .
2020-03-13 11:33:33 -07:00
Pavel Feldman
8aba111f1e
api(cdp): rename createSession to newCDPSession ( #1378 )
2020-03-13 09:00:03 -07:00
Pavel Feldman
b1a3b23c38
api(request): make request.response a promise ( #1377 )
2020-03-13 08:54:19 -07:00
Pavel Feldman
24d4fb1e5c
api(click): remove tripleclick, respect clickCount ( #1373 )
2020-03-13 08:09:48 -07:00
Pavel Feldman
8c532bd8da
api(press): remove text option ( #1372 )
...
#1348
2020-03-12 22:02:19 -07:00
Pavel Feldman
e1d3196460
api(*.selectOption): renamed from *.select ( #1371 )
2020-03-12 21:30:12 -07:00
Pavel Feldman
064099ab3c
api(keyboard.insertText): renamed from sendCharaters ( #1370 )
2020-03-12 20:56:52 -07:00
Pavel Feldman
9aa56a6b9e
api(browserType): remove devices, errors ( #1368 )
2020-03-12 17:58:00 -07:00
Dmitry Gozman
0d7cb29329
test: continue running tests after crash, report crashes separately ( #1362 )
2020-03-12 17:32:53 -07:00
Pavel Feldman
cfd3ae25fb
api(addCookies): setCookies -> addCookies ( #1367 )
...
#1348
2020-03-12 17:32:33 -07:00
Dmitry Gozman
3fa4255bc5
api: make request.postData() return null instead of undefined ( #1366 )
2020-03-12 16:53:04 -07:00
Dmitry Gozman
e382bb329b
api: remove 'commit' phase, actions to wait until 'domcontentloaded' by default ( #1358 )
2020-03-12 11:20:03 -07:00
Dmitry Gozman
7c59f9ca9a
fix: do not wait for navigations while evaluating injected source ( #1347 )
2020-03-11 22:52:03 -07:00
Andrey Lushnikov
1cd00bd068
feat(testrunner): allow filtering by name and show all focused tests ( #1354 )
2020-03-11 18:30:43 -07:00
Pavel Feldman
b43f33f4d3
api(review): misc changes to API. ( #1356 )
2020-03-11 18:10:48 -07:00
Dmitry Gozman
c1ef683373
api: remove waitForLoadState() in favor of PageEvent.page(options) ( #1323 )
2020-03-11 14:46:52 -07:00
Pavel Feldman
9b8f4a2246
test(webkit): uncomment fixed viewport screenshot tests ( #1346 )
2020-03-11 14:37:06 -07:00
Dmitry Gozman
7e8ab8a175
test: await setInputFiles in flaky input tests ( #1345 )
2020-03-11 14:35:48 -07:00
Dmitry Gozman
823fffaa65
test: declare setInterval click test as undefined behavior ( #1343 )
2020-03-11 14:33:55 -07:00
Pavel Feldman
401a916732
test(webkit): uncomment clearCookies test w/ right expectations
2020-03-10 20:06:29 -07:00
Dmitry Gozman
3dd49459bb
fix(chromium): install binding function during initialization ( #1320 )
2020-03-10 16:19:01 -07:00
Pavel
6b711f57fa
test(webkit): unblock and uncomment sync window.stop test
2020-03-10 15:17:59 -07:00
Joel Einbinder
0d2ae91fac
fix(test): enable presssing in frames test ( #1326 )
...
Fixes #1265
2020-03-10 14:47:52 -07:00
Andrey Lushnikov
0cff9df00f
test: add failing test for clicking and oopifs ( #1325 )
2020-03-10 14:24:25 -07:00
Pavel Feldman
0077b428fc
feat(webkit): emulate device size ( #1318 )
2020-03-10 13:16:33 -07:00
Pavel Feldman
044f774458
test: unflake should fail when frame detaches
2020-03-10 13:14:35 -07:00
Andrey Lushnikov
59f2e888ca
test: mark test as flaky on Firefox ( #1321 )
...
Run: https://github.com/microsoft/playwright/pull/1320/checks?check_run_id=498666394
2020-03-10 12:56:32 -07:00
Andrey Lushnikov
ac5b518bea
test: mark as flaky according to the new policy ( #1322 )
...
Closes #1300 , #1303 , #1305
2020-03-10 12:56:18 -07:00
Pavel
a9b7bcf905
test(webkit): expect cookies to be deleted after reload
2020-03-10 11:29:29 -07:00
Andrey Lushnikov
92aa4f375a
test: stop sourceServer as well ( #1314 )
2020-03-10 10:23:17 -07:00
Dmitry Gozman
38c3837b3e
test: remove test which is inherently racy ( #1313 )
...
page.evaluate() sometimes triggers navigation fast enoguh, so that
next page.setContent() has no execution context to evaluate in.
2020-03-10 10:11:44 -07:00
Dmitry Gozman
d5a2781e80
fix(chromium): do not await extra promises in initialize() to attach early enough ( #1311 )
2020-03-10 10:06:17 -07:00
Dmitry Gozman
ea6978a3d8
api(popups): expose BrowserContext.route() ( #1295 )
2020-03-09 21:02:54 -07:00
Andrey Lushnikov
adee9a9bd3
test: mark worker.url() API coverage as missing
...
References #1300
2020-03-09 18:46:39 -07:00
Andrey Lushnikov
72ae5c8ceb
test: remove stray test ( #1302 )
...
Fixes #1294
2020-03-09 18:31:56 -07:00
Yury Semikhatsky
9bd3711394
fix(context): reliably fire BrowserContext.Close event when browser is closing ( #1277 )
2020-03-09 16:53:33 -07:00
Andrey Lushnikov
27eb25acef
test: disable flaky test on Firefox Linux
...
References #1303
2020-03-09 16:13:36 -07:00
Dmitry Gozman
eb2ca70955
api(route): allow fulfilling with a file path ( #1301 )
2020-03-09 16:12:00 -07:00
Dmitry Gozman
cf46f1b056
test(chromium): mark passing popup tests as passing ( #1297 )
2020-03-09 16:06:30 -07:00
Andrey Lushnikov
ca5ce7df96
test: disable flaky worker tests on firefox
...
References #1300
2020-03-09 16:00:23 -07:00
Andrey Lushnikov
e650628e3d
fix(chromium): fix device-related media queries ( #1299 )
...
References #1291
2020-03-09 15:53:31 -07:00
Andrey Lushnikov
a61d0660a1
test: add failing test for min-device-width media queries ( #1298 )
...
References #1291
2020-03-09 14:58:38 -07:00
Pavel Feldman
2fa2421894
fix(webkit): fail the 204 navigations ( #1260 )
2020-03-09 11:42:56 -07:00
Andrey Lushnikov
071ee06404
chore: normalize NPM scripts ( #1285 )
...
This patch:
- makes `npm run cunit/wunit/funit` and `npm run ctest/ftest/wtest` run
browser-specific tests only
- makes `npm run unit` and `npm run test` run *all* browser tests
- runs *all* our infrastructure tests as part of `npm run lint`
As a result, if there's one test to be tested across all three browsers,
you can focus it and do `npm run test`;
2020-03-07 17:09:38 -08:00
Andrey Lushnikov
d1ef0c8694
fix(wk,ff): properly support getting and setting non-session cookies ( #1280 )
2020-03-07 08:41:57 -08:00
Yohix
bfd32fe6d2
doc: fix typos ( #1284 )
2020-03-07 08:37:47 -08:00
Pavel Feldman
78bd29d558
fix(click): work around input alignment on chromium ( #1282 )
2020-03-07 08:19:31 -08:00
Pavel Feldman
3c35d7b058
api(waitFor): click(waitFor) -> click(force) ( #1275 )
2020-03-06 16:24:21 -08:00
Andrey Lushnikov
578880cb8b
test: mark test as slow
2020-03-06 15:55:04 -08:00
Andrey Lushnikov
e604acd5fa
test: disable flaky test on WebKit
2020-03-06 15:24:26 -08:00
Yury Semikhatsky
8211287a23
fix(session): use isolated root session for client page sessions ( #1271 )
2020-03-06 15:11:03 -08:00
Pavel Feldman
3fa000f5f4
api(waitForSelector): bring it back ( #1272 )
2020-03-06 15:02:42 -08:00
Pavel Feldman
119df5a985
feat(nowait): allow waitUntil:nowait for actions ( #1264 )
2020-03-06 14:32:15 -08:00
Andrey Lushnikov
c494944b46
api(popups): move Page.authenticate to BrowserContext.setHTTPCredentials ( #1267 )
...
Drive-by: fixes #720 since it rolls past r1037.
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2020-03-06 13:50:42 -08:00
Andrey Lushnikov
ca6faf2e4c
chore: properly mark failint tests
2020-03-06 13:34:29 -08:00
Andrey Lushnikov
cf820b5269
test: mark failing tests on WebKit
2020-03-06 12:24:21 -08:00
Andrey Lushnikov
8cc7d43a83
tests: disable failing test on chromium
2020-03-06 11:45:13 -08:00
Pavel Feldman
677ebf882f
test: mark "clicking anchor should await navigation" as failing on chromium
2020-03-06 10:54:34 -08:00
Pavel Feldman
f3734c3e86
test: mark "should await navigating specified target" as failing on chromium
2020-03-06 10:44:44 -08:00
Pavel Feldman
328805747f
test(webkit): disable failing wk test
2020-03-06 10:20:15 -08:00
Pavel Feldman
a802b00880
test: oops - fdescribe
2020-03-06 09:42:13 -08:00
Pavel Feldman
49c1161e00
api(press): bump .press to the page/frame level ( #1262 )
2020-03-06 09:38:08 -08:00
Pavel Feldman
2724157c22
feat(waitUntil): allow waiting for navigation from clicks, etc ( #1255 )
2020-03-06 08:24:32 -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
Yury Semikhatsky
9bc6dcea1d
feat(api): introduce BrowserContext.waitForEvent ( #1252 )
2020-03-05 17:22:57 -08:00
Dmitry Gozman
e5f82af47c
api(popups): emit PageEvent immediately, and resolve page() once initialized ( #1229 )
...
This way we do not miss any popups, even immediately closed ones.
2020-03-05 15:18:27 -08:00
Pavel Feldman
c734b4b715
feat(click): start wire auto-waiting click in firefox ( #1233 )
2020-03-05 14:47:04 -08:00
Yury Semikhatsky
e770d706a1
fix(chromium): do not create default page and context in headless ( #1247 )
2020-03-05 14:46:12 -08:00
Dmitry Gozman
cd8714d573
tests: skip failing waitForNavigation test in Chromium ( #1248 )
2020-03-05 13:28:45 -08:00
Yury Semikhatsky
665888d579
feat(popups): auto-attach to all pages in Chromium ( #1226 )
2020-03-05 10:45:32 -08:00
Yury Semikhatsky
aabdac8380
api: remove Page.setCacheEnabled ( #1231 )
2020-03-05 10:09:04 -08:00
Pavel Feldman
11f68bac54
feat(cr, wk): make clicks, input and evaluate await scheduled navigations ( #1200 )
2020-03-04 19:15:01 -08:00
Dmitry Gozman
7f9df9488e
api(popups): move Page.setOfflineMode -> BrowserContext.setOffline ( #1223 )
2020-03-04 17:58:12 -08:00
Dmitry Gozman
5ee744cd26
api(page.frame): allow looking up frames by name ( #1228 )
2020-03-04 17:53:39 -08:00
Pavel Feldman
5ff660de15
feat(navigation): waitForNavigation/goto should not wait until response finished ( #1225 )
2020-03-04 15:59:26 -08:00
Yury Semikhatsky
771793f418
test(context): test that context.close() works for empty context ( #1205 )
2020-03-03 23:04:08 -08:00
Dmitry Gozman
f4e9b5079d
api: declare not supporting isMobile on Firefox ( #1207 )
2020-03-03 17:28:31 -08:00
Dmitry Gozman
33f3e5724b
test: skip flaky 'Page.goto extraHttpHeaders should be pushed to provisional page' ( #1203 )
2020-03-03 17:26:58 -08:00
Joel Einbinder
fcfe887c57
feat(select): don't accept undefined as a value ( #1202 )
...
`page.select` accepting an `undefined` value is a legacy of when `page.select` took `...values`. This matches the way the method is documented in the API.
2020-03-03 16:59:41 -08:00
Yury Semikhatsky
4556513c2a
chore(test): test cleanup ( #1198 )
2020-03-03 16:58:37 -08:00
Dmitry Gozman
6c6cdc033b
api(popup): introduce BrowserContext.exposeFunction ( #1176 )
2020-03-03 16:46:06 -08:00
Dmitry Gozman
1b863c2300
fix(screenshots): simplify implementation, allow fullPage + clip, add tests ( #1194 )
2020-03-03 16:09:32 -08:00
Dmitry Gozman
2ec9e6daa2
test: cleanup some test files ( #1195 )
2020-03-03 15:02:06 -08:00
Yury Semikhatsky
4a9a155838
test: enable page opener test on WebKit ( #1193 )
2020-03-03 14:11:17 -08:00
Yury Semikhatsky
31e26a2208
fix(api): fire BrowserContext.Page event in WebKit and Firefox ( #1186 )
2020-03-02 18:32:56 -08:00
Dmitry Gozman
342a2cf5cc
fix(selectors): continue matching after first fail for combined selectors ( #1185 )
2020-03-02 15:47:50 -08:00
Pavel
342e79c5b4
test: mark some tests as skipped (3)
2020-03-02 15:13:15 -08:00
Pavel
2f98b5e26a
test: mark some tests as skipped (2)
2020-03-02 15:08:15 -08:00
Pavel
ba06fb2f0d
test: mark some tests as skipped
2020-03-02 14:57:54 -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
Yury Semikhatsky
a57978a5f0
api(chromium): remove Target from public API ( #1163 )
2020-03-02 13:58:22 -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
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
Dmitry Gozman
82a4ede6dc
chore: roll Chromium to 745253 ( #1156 )
2020-02-28 09:02:26 -08:00
aesyondu
041b8c6e01
chore: fix typo on sepcified -> specified ( #1153 )
2020-02-27 17:44:19 -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
Joel Einbinder
857ffd8ea9
fix: text selector should be case insensitive without quotes ( #1151 )
2020-02-27 16:52:30 -08:00
Dmitry Gozman
7682865d73
feat(popups): add BrowserContext.evaluateOnNewDocument ( #1136 )
2020-02-27 16:18:33 -08:00
Pavel Feldman
dc161df063
fix(launch): throw upon page argument when non-persistent ( #1144 )
2020-02-27 14:09:24 -08:00
Yury Semikhatsky
9d6aa967f3
chore(workers): align worker lifecycle evens with other APIs ( #1147 )
2020-02-27 14:02:48 -08:00
Yury Semikhatsky
6b6a671754
fix(webkit): pass popup tests ( #1138 )
2020-02-27 08:43:01 -08:00
Andrey Lushnikov
22c28b6615
test(firefox): support loading of file URLs ( #1132 )
...
Fixes #822
2020-02-26 15:02:59 -08:00
Pavel
5cfe68d878
test: uncomment webkit fix
2020-02-26 14:16:14 -08:00
Dmitry Gozman
672f3f9960
feat(popups): introduce BrowserContext.setDefaultHTTPHeaders ( #1116 )
2020-02-26 12:42:20 -08:00
Yury Semikhatsky
4f69930fbe
fix(chromium): make locale overrides work ( #1108 )
2020-02-26 11:01:46 -08:00
Dmitry Gozman
ba29470cc1
fix(api): rename relativePoint to offset, remove unused parameters from input ( #1092 )
2020-02-24 21:12:02 -08:00
aesyondu
fdfec8eb2a
fix(platform) instanceof bug between execution contexts of RegExp object ( #1048 )
...
First encountered at jest-playwright repo:
https://github.com/mmarkelov/jest-playwright/issues/38
Solution based on:
https://stackoverflow.com/questions/4339288/typeof-for-regexp#comment4724685_4339350
2020-02-24 18:32:17 -08:00
Joel Einbinder
a6c3735b9d
test: add failing drag and drop test ( #1095 )
...
The test file comes from mdn: https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/setData
References #1094
2020-02-24 18:25:47 -08:00
Dmitry Gozman
6acc439450
feat(api): move targets from CRBrowser to CRBrowserContext ( #1089 )
...
This makes them work for default context.
2020-02-24 14:35:51 -08:00
Dmitry Gozman
3677818202
fix(api): browser.serviceWorker -> target.serviceWorker ( #1076 )
2020-02-24 08:31:58 -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
Andrey Lushnikov
88e310942b
test: fix test on Firefox Linux ( #1079 )
2020-02-21 13:21:45 -08:00
Andrey Lushnikov
f305d6594e
chore: remove focused test
2020-02-21 13:12:57 -08:00
Andrey Lushnikov
66362a5687
chore: update appveyour config
2020-02-21 13:09:36 -08:00
Andrey Lushnikov
0ded511d0b
feat(testrunner): better matchers ( #1077 )
...
This patch re-implements matching and reporting for test runner.
Among other improvements:
- test failures now show a short snippet from test
- test failures now explicitly say what received and what was expected
- `expect.toBe()` now does text diff when gets strings as input
- `expect.toEqual` now does object diff
2020-02-20 22:55:39 -08:00
Andrey Lushnikov
05a1e1c641
test: remove newContext and newPage test helpers ( #1070 )
...
All tests should clean up their contexts themselves.
2020-02-20 15:15:48 -08:00
Dmitry Gozman
40164298a8
api: remove ElementHandle.visibleRatio ( #1069 )
2020-02-19 16:08:25 -08:00
Joel Einbinder
568c6cbb54
test(navigation): fix flaky networkidle tests ( #1058 )
...
The network idle tests were waiting for requests to appear on the server, but not for playwright to be notified of the request via protocol. They also assumed performance.now would match up with setTimeout times.
2020-02-19 14:26:02 -08:00
Dmitry Gozman
84ee297c4b
test: add a test for bounding box on partially visible element ( #1011 )
2020-02-19 16:08:29 -06:00
Andrey Lushnikov
4be48a6b1b
chore: disable DEBUGP on bots
2020-02-19 14:07:36 -08:00
Dmitry Gozman
33824aa1d7
feat(click): waitForInteractable option, defaults to true ( #934 ) ( #1052 )
2020-02-19 09:34:57 -08:00
Dmitry Gozman
1805acd5d5
test: update animation click test ( #1053 )
2020-02-18 14:30:56 -08:00
Pavel Feldman
1ee657823e
feat(viewport): update defaults to 1280x720, fix Firefox ( #1038 )
2020-02-18 09:16:32 -08:00
Pavel Feldman
f2b2d72693
fix(input): emit change events upon page.setInputFiles ( #1028 )
2020-02-18 09:15:47 -08:00
Pavel Feldman
e65897844f
test: add screenshot test that fails on Chromium ( #1039 )
2020-02-15 16:34:27 -08:00
Darío Kondratiuk
cfeaecb3d2
test(keyboard): Remove duplicated test ( #1031 )
2020-02-15 14:58:07 -08:00
Joel Einbinder
3656403f2d
fix(keyboard): Add mac editing commands for NumpadEnter ( #1026 )
...
This should fix NumpadEnter on webkit for mac.
2020-02-14 18:37:02 -08:00
Joel Einbinder
21acb369db
fix(keyboard): correctly press enter on firefox ( #1023 )
2020-02-14 17:42:08 -08:00
Andrey Lushnikov
5695ade926
test: add failing test for Firefox ( #1019 )
...
References #1009
2020-02-14 17:02:22 -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
Dmitry Gozman
1eabd182e9
test(firefox): unskip passing url hash test ( #998 )
2020-02-13 18:22:14 -08:00
Pavel Feldman
4d7e531520
fix(webkit): wait for the pipe ready on windows ( #997 )
2020-02-13 17:46:40 -08:00
Pavel Feldman
cd4e9da807
feat(coverage): export raw v8 coverage ( #976 )
...
Fixes #955
2020-02-13 17:39:14 -08:00
Andrey Lushnikov
7ec3bf4d94
test: fix locale tests on mac
2020-02-13 17:03:35 -08:00
Andrey Lushnikov
b181b34e2e
test: attempt to normalize locale tests
2020-02-13 15:32:39 -08:00
Pavel Feldman
b96d985d12
test: fix locale expectations on non-Mac ( #994 )
2020-02-13 15:12:54 -08:00
Dmitry Gozman
25022e4685
feat(api): introduce default timeouts on BrowserContext ( #992 )
2020-02-13 14:18:18 -08:00
Andrey Lushnikov
f8f818f676
Revert "Revert "feat: do not wait for first page in non-persistent mode ( #939 )""
...
Apparently a good fix is coming: https://github.com/microsoft/playwright/pull/993/
Pavel want to re-revert.
2020-02-13 13:54:01 -08:00
Andrey Lushnikov
71892b4aaa
Revert "feat: do not wait for first page in non-persistent mode ( #939 )"
...
This reverts commit a567123596 .
Reason for revert: WK-Win fails to start if we start talking over the
pipe too early.
2020-02-13 13:44:58 -08:00
Pavel Feldman
c15534ff01
fix(locale): document locale parameter ( #990 )
2020-02-13 13:37:59 -08:00
Dmitry Gozman
cb63021b2f
test: add test for navigator.userAgent in popups ( #985 )
2020-02-13 13:23:29 -08:00
Andrey Lushnikov
05f8d001f8
test: fix service worker test ( #988 )
...
Do the following to ensure SW is active and serves requests:
- in ServiceWorker, claim all clients once activated
- in page, await activation promise instead of a registration
2020-02-13 13:21:19 -08:00
Dmitry Gozman
2e0d89e25c
fix(firefox): roll to 1029 and unskip passing tests ( #984 )
2020-02-13 13:19:25 -08:00
Joel Einbinder
d790b4c280
fix(test): default DEBUGP to false ( #989 )
2020-02-13 13:18:19 -08:00
Pavel Feldman
8ed88c910a
feat(webkit): introduce BrowserContext({language}) ( #972 )
2020-02-13 12:24:17 -08:00
Pavel Feldman
53fa62910a
fix(chromium): emit focus events in headful ( #982 )
...
Fixes #979
2020-02-13 11:29:13 -08:00
Dmitry Gozman
a567123596
feat: do not wait for first page in non-persistent mode ( #939 )
2020-02-13 10:51:17 -08:00
Joel Einbinder
d367a2ed3a
chore(tests): log protocol messages when a test fails on the bots ( #963 )
...
Similarly to how we handle stdio, this captures all protocol messages and logs them when a test fails. Great for when debugging tests in parallel or for bot failures!
Currently I made `DEBUGP=true` turn this on locally, and turned it on always for the CI. Open to
suggestions for a better environment variable. I would turn it on by default always, like the stdio logging, but it adds an enormous amount of noise to our error messages.
2020-02-12 22:35:06 -08:00
Pavel Feldman
8abf35c8e4
feat(webkit): roll webkit to 1148 ( #971 )
2020-02-12 21:25:17 -08:00
Andrey Lushnikov
d735de5347
feat: do not let users pass userDataDir to browserType.launch() ( #974 )
...
We now have a separate method for this - `browserType.launchPersistent`.
This will probably save our users quite some time.
2020-02-12 19:32:23 -08:00
Pavel Feldman
012bf671b8
feat(webkit): emulate timezone on webkit ( #968 )
2020-02-12 17:02:59 -08:00
Dmitry Gozman
fbce2908ad
test: unskip passing Firefox tests ( #966 )
2020-02-12 16:27:45 -08:00
Andrey Lushnikov
bfaf191c98
test: add missing tests ( #965 )
...
Chromium tests on Linux now call all our API methods and events at least once!
2020-02-12 16:13:48 -08:00
Dmitry Gozman
1d84f38e5e
fix(input): ensure input works as expected with page scale ( #962 )
2020-02-12 16:13:21 -08:00
Andrey Lushnikov
7ce49c2835
chore: remove WebSocket implementation ( #961 )
...
WebSocket implementation currently is very incomplete, lacking
support in WebKit-Win and Firefox.
2020-02-12 15:29:06 -08:00
Dmitry Gozman
5f24205922
test: add a test for interception + service worker ( #951 )
2020-02-12 13:02:27 -08:00
Pavel Feldman
c8c4356d7c
test: add setInputFiles input event test ( #944 )
2020-02-11 20:18:41 -08:00
Pavel Feldman
d05feec740
feat(active): emulate active state on webkit ( #941 )
2020-02-11 19:10:57 -08:00
Dmitry Gozman
da30847c83
feat(firefox): apply emulation to all pages in the browser context ( #931 )
2020-02-11 18:52:01 -08:00
Dmitry Gozman
f25a27a0a4
test: add a test for bounding box with page scale ( #935 )
...
Does not work on WebKit, because it uses device-independent pixels instead of css pixels for content quads.
2020-02-11 17:04:49 -08:00
Pavel Feldman
20e2bac857
test: fix flaky page event test
2020-02-11 15:19:43 -08:00
Pavel Feldman
53237009ad
feat($wait): make $wait a shortcut for waitForSelector ( #932 )
2020-02-11 14:51:09 -08:00
Joel Einbinder
6105d8a26a
fix(tests): fix test that was leaking a context ( #933 )
2020-02-11 14:15:30 -08:00
Pavel Feldman
aae5fca237
feat(api): make browser.newPage own the created context ( #930 )
2020-02-11 12:06:58 -08:00
Dmitry Gozman
c69dccf7c1
feat(click): use browser-provided scrollIntoViewIfNeeded ( #893 )
2020-02-11 10:30:09 -08:00
Pavel Feldman
72b9cf010e
feat(context): introduce BrowserContext close event ( #918 )
2020-02-11 10:27:19 -08:00
Meir Blachman
5fee93ae96
test: fix expect in jshandle spec ( #927 )
2020-02-11 09:26:23 -08:00
Joel Einbinder
251ad38824
fix(navigations): remove LifecycleWatcher, fix flakes ( #882 )
2020-02-10 18:35:47 -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
Andrey Lushnikov
4fcc63f2e1
chore: remove usages of mime module from infrastructure
...
Follow-up to 4d84e35096
2020-02-10 11:26:08 -08:00
Pavel Feldman
84f5700294
feat(api): rename browserContext() to context() in the apis, remove url from newPage ( #906 )
2020-02-10 10:41:45 -08:00
Pavel Feldman
4d84e35096
fix(upload): detect mime type from file extension ( #911 )
2020-02-10 10:08:51 -08:00