This package is part of the Kendo UI for Angular and KendoReact suites.
This is commercial software. To use it, you need to agree to the Telerik End User License Agreement for Kendo UI (for Kendo UI for Angular) or to the End User License Agreement for Progress KendoReact (for KendoReact). If you do not own a commercial license, this file shall be governed by the trial license terms.
All available Kendo UI commercial licenses may be obtained at http://www.telerik.com/purchase/kendo-ui.
Copyright © 2021 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries.
Selenium based e2e testing for web.
Example:
const browser = new Browser();
await browser.navigateTo("https://www.telerik.com/")
await browser.close();
By default it will start Chrome browser with size 1366x768.
Browser type and size can be controlled by settings following environment variables:
-
BROWSER_NAME
Allowed values are
chrome
,firefox
,MicrosoftEdge
andsafari
(default ischrome
). -
BROWSER_WIDTH
andBROWSER_HEIGHT
Default values are
1366
and768
. -
HEADLESS
If set to
true
it will start browsers in headless mode (default isfalse
).Notes:
Safari
do not support headless mode and this setting will be ignored.
Selenium default behavior when you search for element is to return it if available and throw if not available (do not try to wait until element is available).
To make writing e2e tests easier and tests more stable in kendo-e2e
we have:
const element = await browser.find(locator, timeout);
This find
with wait until element is available (until timeout reached), if timeout reached and element still not found it will throw.
await browser.getErrorLogs()
Will return all errors in browser console and it is nice check we can perform after each test to ensure we have no missing resources or scripts throwing errors.
const disableRules = ['aria-allowed-role', 'label'];
const errors = await browser.getAccessibilityViolations('#table', disableRules);
expect(errors).toEqual([]);
getAccessibilityViolations
uses axe to detect WCAG 2.1 violations.
TODO
PRs are welcome!
Lint:
npm run lint
Build:
npm run build
Run tests:
npm run test:a11y
npm run test:e2e
npm run test:visual
npm run test:components
npm run test:rendering
npm run test:snapshot