@progress/kendo-e2e 4.4.2 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/a11y/a11y-wct-spec.js +3 -4
- package/dist/a11y/a11y-wct-spec.js.map +1 -1
- package/dist/components/actionsheet.js +1 -1
- package/dist/components/actionsheet.js.map +1 -1
- package/dist/components/appbar.js +1 -1
- package/dist/components/appbar.js.map +1 -1
- package/dist/components/autocomplete.js +3 -3
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/bottomnavigation.js +1 -1
- package/dist/components/bottomnavigation.js.map +1 -1
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/captcha.js +1 -1
- package/dist/components/captcha.js.map +1 -1
- package/dist/components/chat.js +1 -1
- package/dist/components/chat.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/colorpicker.js +1 -1
- package/dist/components/colorpicker.js.map +1 -1
- package/dist/components/combobox.js +2 -2
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/datepicker.js +3 -3
- package/dist/components/datepicker.js.map +1 -1
- package/dist/components/daterangepicker.js +7 -7
- package/dist/components/daterangepicker.js.map +1 -1
- package/dist/components/datetimepicker.js +3 -3
- package/dist/components/datetimepicker.js.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dockmanager.js +1 -1
- package/dist/components/dockmanager.js.map +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js +9 -9
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/dropdownbutton.js +1 -1
- package/dist/components/dropdownbutton.js.map +1 -1
- package/dist/components/dropdownlist.js +1 -1
- package/dist/components/dropdownlist.js.map +1 -1
- package/dist/components/dropdowntree.js +1 -1
- package/dist/components/dropdowntree.js.map +1 -1
- package/dist/components/editor.js +1 -1
- package/dist/components/editor.js.map +1 -1
- package/dist/components/enums.js +1 -1
- package/dist/components/enums.js.map +1 -1
- package/dist/components/filemanager.js +1 -1
- package/dist/components/filemanager.js.map +1 -1
- package/dist/components/filter.js +29 -29
- package/dist/components/filter.js.map +1 -1
- package/dist/components/filtermenu.js +2 -2
- package/dist/components/filtermenu.js.map +1 -1
- package/dist/components/flatcolorpicker.js +1 -1
- package/dist/components/flatcolorpicker.js.map +1 -1
- package/dist/components/floatingactionbutton.js +1 -1
- package/dist/components/floatingactionbutton.js.map +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/form.js.map +1 -1
- package/dist/components/gantt.js +1 -1
- package/dist/components/gantt.js.map +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/grid.js.map +1 -1
- package/dist/components/imagedditor.js +1 -1
- package/dist/components/imagedditor.js.map +1 -1
- package/dist/components/input.js +3 -3
- package/dist/components/input.js.map +1 -1
- package/dist/components/listbox.js +1 -1
- package/dist/components/listbox.js.map +1 -1
- package/dist/components/listview.js +5 -5
- package/dist/components/listview.js.map +1 -1
- package/dist/components/maskedtextbox.js +3 -3
- package/dist/components/maskedtextbox.js.map +1 -1
- package/dist/components/mediaplayer.js +1 -1
- package/dist/components/mediaplayer.js.map +1 -1
- package/dist/components/menu.js +5 -5
- package/dist/components/menu.js.map +1 -1
- package/dist/components/multicolumncombobox.js +1 -1
- package/dist/components/multicolumncombobox.js.map +1 -1
- package/dist/components/multiselect.js +3 -3
- package/dist/components/multiselect.js.map +1 -1
- package/dist/components/numerictextbox.js +3 -3
- package/dist/components/numerictextbox.js.map +1 -1
- package/dist/components/pager.js +1 -1
- package/dist/components/pager.js.map +1 -1
- package/dist/components/panelbar.js +1 -1
- package/dist/components/panelbar.js.map +1 -1
- package/dist/components/pdfviewer.js +1 -1
- package/dist/components/pdfviewer.js.map +1 -1
- package/dist/components/pivotgrid-legacy.js +9 -9
- package/dist/components/pivotgrid-legacy.js.map +1 -1
- package/dist/components/pivotgrid.js +8 -8
- package/dist/components/pivotgrid.js.map +1 -1
- package/dist/components/popup.js +1 -1
- package/dist/components/popup.js.map +1 -1
- package/dist/components/progressbar.js +1 -1
- package/dist/components/progressbar.js.map +1 -1
- package/dist/components/radiobutton.js +1 -1
- package/dist/components/radiobutton.js.map +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/rating.js.map +1 -1
- package/dist/components/scheduler.js +2 -2
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/scrollview.js +1 -1
- package/dist/components/scrollview.js.map +1 -1
- package/dist/components/signature.js +1 -1
- package/dist/components/signature.js.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/splitbutton.js +1 -1
- package/dist/components/splitbutton.js.map +1 -1
- package/dist/components/splitter.js +1 -1
- package/dist/components/splitter.js.map +1 -1
- package/dist/components/spreadsheet.js +1 -1
- package/dist/components/spreadsheet.js.map +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.js +15 -15
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabstrip.js +3 -3
- package/dist/components/tabstrip.js.map +1 -1
- package/dist/components/textbox.js +3 -3
- package/dist/components/textbox.js.map +1 -1
- package/dist/components/tilelayout.js +1 -1
- package/dist/components/tilelayout.js.map +1 -1
- package/dist/components/timedurationpicker.js +3 -3
- package/dist/components/timedurationpicker.js.map +1 -1
- package/dist/components/timeline.js +1 -1
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/timepicker.js +3 -3
- package/dist/components/timepicker.js.map +1 -1
- package/dist/components/toolbar.js +3 -3
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/treelist.js +1 -1
- package/dist/components/treelist.js.map +1 -1
- package/dist/components/treeview.js +1 -1
- package/dist/components/treeview.js.map +1 -1
- package/dist/components/ui-component.js +8 -8
- package/dist/components/ui-component.js.map +1 -1
- package/dist/components/upload.js +1 -1
- package/dist/components/upload.js.map +1 -1
- package/dist/components/window.js +1 -1
- package/dist/components/window.js.map +1 -1
- package/dist/components/wizard.js +1 -1
- package/dist/components/wizard.js.map +1 -1
- package/dist/rendering/html-comparer.js +3 -4
- package/dist/rendering/html-comparer.js.map +1 -1
- package/dist/rendering/matchers.js +5 -6
- package/dist/rendering/matchers.js.map +1 -1
- package/dist/selenium/browser.d.ts +62 -1
- package/dist/selenium/browser.js +74 -5
- package/dist/selenium/browser.js.map +1 -1
- package/dist/selenium/conditions.js.map +1 -1
- package/dist/selenium/driver-manager.d.ts +13 -3
- package/dist/selenium/driver-manager.js +25 -11
- package/dist/selenium/driver-manager.js.map +1 -1
- package/dist/selenium/web-app.js +42 -42
- package/dist/selenium/web-app.js.map +1 -1
- package/dist/snapshot-cli/capture.js +22 -13
- package/dist/snapshot-cli/capture.js.map +1 -1
- package/dist/snapshot-cli/index.js.map +1 -1
- package/dist/snapshot-image/crop.d.ts +0 -2
- package/dist/snapshot-image/crop.js +1 -2
- package/dist/snapshot-image/crop.js.map +1 -1
- package/dist/snapshot-image/scripts.js +3 -4
- package/dist/snapshot-image/scripts.js.map +1 -1
- package/dist/snapshot-image/snapshot-image.js +20 -11
- package/dist/snapshot-image/snapshot-image.js.map +1 -1
- package/dist/snapshot-markup/filter-attributes.js +1 -2
- package/dist/snapshot-markup/filter-attributes.js.map +1 -1
- package/dist/snapshot-markup/filter-comment-nodes.js +1 -2
- package/dist/snapshot-markup/filter-comment-nodes.js.map +1 -1
- package/dist/snapshot-markup/html-template.js +1 -2
- package/dist/snapshot-markup/html-template.js.map +1 -1
- package/dist/snapshot-markup/snapshot-markup.js +2 -3
- package/dist/snapshot-markup/snapshot-markup.js.map +1 -1
- package/dist/snapshot-markup/visual-test-template.js +1 -2
- package/dist/snapshot-markup/visual-test-template.js.map +1 -1
- package/dist/utils/excel.js +1 -2
- package/dist/utils/excel.js.map +1 -1
- package/dist/utils/fsUtils.d.ts +0 -2
- package/dist/utils/fsUtils.js +32 -22
- package/dist/utils/fsUtils.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.toMatchFromHtml = toMatchFromHtml;
|
|
4
|
+
exports.toMatchSpec = toMatchSpec;
|
|
5
|
+
exports.toMatchFromHtmlWithPassed = toMatchFromHtmlWithPassed;
|
|
6
|
+
exports.toMatchSpecWithPassed = toMatchSpecWithPassed;
|
|
7
|
+
exports.generateReport = generateReport;
|
|
4
8
|
const _1 = require(".");
|
|
5
9
|
function toMatchFromHtml(markup, expected, comparerOptions) {
|
|
6
10
|
const result = (0, _1.compareHtml)(markup, expected, comparerOptions);
|
|
@@ -14,12 +18,10 @@ function toMatchFromHtml(markup, expected, comparerOptions) {
|
|
|
14
18
|
}),
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
|
-
exports.toMatchFromHtml = toMatchFromHtml;
|
|
18
21
|
function toMatchSpec(markup, spec, specOptions, comparerOptions) {
|
|
19
22
|
const expected = (0, _1.specToHtml)(spec, specOptions);
|
|
20
23
|
return toMatchFromHtml(markup, expected, comparerOptions);
|
|
21
24
|
}
|
|
22
|
-
exports.toMatchSpec = toMatchSpec;
|
|
23
25
|
function toMatchFromHtmlWithPassed(markup, passed = 0, expected, comparerOptions) {
|
|
24
26
|
const result = (0, _1.compareHtml)(markup, expected, comparerOptions);
|
|
25
27
|
const pass = result.passed.length === passed &&
|
|
@@ -33,12 +35,10 @@ function toMatchFromHtmlWithPassed(markup, passed = 0, expected, comparerOptions
|
|
|
33
35
|
}),
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
|
-
exports.toMatchFromHtmlWithPassed = toMatchFromHtmlWithPassed;
|
|
37
38
|
function toMatchSpecWithPassed(markup, passed = 0, spec, specOptions, comparerOptions) {
|
|
38
39
|
const expected = (0, _1.specToHtml)(spec, specOptions);
|
|
39
40
|
return toMatchFromHtmlWithPassed(markup, passed, expected, comparerOptions);
|
|
40
41
|
}
|
|
41
|
-
exports.toMatchSpecWithPassed = toMatchSpecWithPassed;
|
|
42
42
|
function generateReport({ comparerResult, passed }) {
|
|
43
43
|
const allExpectedSelectors = comparerResult.expectedSelectors.reduce((acc, curr) => {
|
|
44
44
|
return [...acc, ...curr.split(" ")];
|
|
@@ -80,7 +80,6 @@ function generateReport({ comparerResult, passed }) {
|
|
|
80
80
|
.join("\n");
|
|
81
81
|
return `${Colors.FgYellow}Spec Reporter:\n${separator}${messages}${Colors.Reset}`;
|
|
82
82
|
}
|
|
83
|
-
exports.generateReport = generateReport;
|
|
84
83
|
function findDifferences(comparerResult) {
|
|
85
84
|
const differentSelectors = [];
|
|
86
85
|
let actualIdx = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/rendering/matchers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/rendering/matchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,17 @@ import { By, ThenableWebDriver } from "selenium-webdriver";
|
|
|
2
2
|
import { Level } from "selenium-webdriver/lib/logging";
|
|
3
3
|
import { WebApp } from "./web-app";
|
|
4
4
|
export { By, Key, ThenableWebDriver, until, WebElement, WebElementCondition } from "selenium-webdriver";
|
|
5
|
+
interface BrowserOptions {
|
|
6
|
+
driver?: ThenableWebDriver;
|
|
7
|
+
mobileEmulation?: {
|
|
8
|
+
deviceName: string;
|
|
9
|
+
} | {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
pixelRatio: number;
|
|
13
|
+
} | any;
|
|
14
|
+
enableBidi?: boolean;
|
|
15
|
+
}
|
|
5
16
|
/**
|
|
6
17
|
* Extends the {@link WebApp} with browser based capabilities.
|
|
7
18
|
* Essentially, we test browsers (that have nice things like {@link navigateTo}, {@link refresh} etc.),
|
|
@@ -9,7 +20,57 @@ export { By, Key, ThenableWebDriver, until, WebElement, WebElementCondition } fr
|
|
|
9
20
|
* and VSCode extensions... which is an electron app.
|
|
10
21
|
*/
|
|
11
22
|
export declare class Browser extends WebApp {
|
|
12
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Creates an instance of the Browser class.
|
|
25
|
+
*
|
|
26
|
+
* @param {ThenableWebDriver | BrowserOptions} [driverOrOptions] - Either a WebDriver instance or an options object.
|
|
27
|
+
* If a WebDriver instance is provided, it will be used as the driver. If an options object is provided, a new driver will be created with those options.
|
|
28
|
+
* @param {Object} [mobileEmulation] - (Optional) Mobile emulation options, used only if the first parameter is a WebDriver instance.
|
|
29
|
+
* Mobile options can be an object with either a `deviceName` or `width`, `height`, and `pixelRatio`.
|
|
30
|
+
* @param {boolean} [enableBidi] - (Optional) Enables BiDi (Bidirectional communication) if set to `true`.
|
|
31
|
+
*
|
|
32
|
+
* __Usage Examples:__
|
|
33
|
+
*
|
|
34
|
+
* __Example 1: Using a Pre-configured Device__
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const mobileEmulation = { deviceName: "iPhone 14 Pro Max" };
|
|
37
|
+
* const browser = new Browser(mobileEmulation);
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* __Example 2: Using Custom Screen Configuration__
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const mobileEmulation = { deviceMetrics: { width: 360, height: 640, pixelRatio: 3.0 }, userAgent: 'My Agent' };
|
|
43
|
+
* const browser = new Browser(mobileEmulation);
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* __Example 3: Providing a WebDriver Instance With Mobile Emulation__
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const driver = new Builder().forBrowser('chrome').build();
|
|
49
|
+
* const mobileEmulation = { deviceName: "iPhone 14 Pro Max" };
|
|
50
|
+
* const browser = new Browser(driver, mobileEmulation);
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* __Example 4: Enabling BiDi Mode__
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const browser = new Browser({ enableBidi: true });
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* __Example 5: Combining Mobile Emulation and BiDi Mode__
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const browser = new Browser({ mobileEmulation: { deviceName: "iPhone 14 Pro Max" }, enableBidi: true });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* [em]: https://chromedriver.chromium.org/mobile-emulation
|
|
64
|
+
* [devem]: https://developer.chrome.com/devtools/docs/device-mode
|
|
65
|
+
*/
|
|
66
|
+
constructor(driverOrOptions?: ThenableWebDriver | BrowserOptions, mobileEmulation?: {
|
|
67
|
+
deviceName: string;
|
|
68
|
+
} | {
|
|
69
|
+
width: number;
|
|
70
|
+
height: number;
|
|
71
|
+
pixelRatio: number;
|
|
72
|
+
} | any, enableBidi?: boolean);
|
|
73
|
+
private static isDriver;
|
|
13
74
|
close(): Promise<void>;
|
|
14
75
|
navigateTo(url: string): Promise<void>;
|
|
15
76
|
refresh(): Promise<void>;
|
package/dist/selenium/browser.js
CHANGED
|
@@ -24,6 +24,9 @@ Object.defineProperty(exports, "Key", { enumerable: true, get: function () { ret
|
|
|
24
24
|
Object.defineProperty(exports, "until", { enumerable: true, get: function () { return selenium_webdriver_2.until; } });
|
|
25
25
|
Object.defineProperty(exports, "WebElement", { enumerable: true, get: function () { return selenium_webdriver_2.WebElement; } });
|
|
26
26
|
Object.defineProperty(exports, "WebElementCondition", { enumerable: true, get: function () { return selenium_webdriver_2.WebElementCondition; } });
|
|
27
|
+
function isDriver(obj) {
|
|
28
|
+
return obj && typeof obj.getSession === 'function';
|
|
29
|
+
}
|
|
27
30
|
/**
|
|
28
31
|
* Extends the {@link WebApp} with browser based capabilities.
|
|
29
32
|
* Essentially, we test browsers (that have nice things like {@link navigateTo}, {@link refresh} etc.),
|
|
@@ -31,9 +34,75 @@ Object.defineProperty(exports, "WebElementCondition", { enumerable: true, get: f
|
|
|
31
34
|
* and VSCode extensions... which is an electron app.
|
|
32
35
|
*/
|
|
33
36
|
class Browser extends web_app_1.WebApp {
|
|
34
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Creates an instance of the Browser class.
|
|
39
|
+
*
|
|
40
|
+
* @param {ThenableWebDriver | BrowserOptions} [driverOrOptions] - Either a WebDriver instance or an options object.
|
|
41
|
+
* If a WebDriver instance is provided, it will be used as the driver. If an options object is provided, a new driver will be created with those options.
|
|
42
|
+
* @param {Object} [mobileEmulation] - (Optional) Mobile emulation options, used only if the first parameter is a WebDriver instance.
|
|
43
|
+
* Mobile options can be an object with either a `deviceName` or `width`, `height`, and `pixelRatio`.
|
|
44
|
+
* @param {boolean} [enableBidi] - (Optional) Enables BiDi (Bidirectional communication) if set to `true`.
|
|
45
|
+
*
|
|
46
|
+
* __Usage Examples:__
|
|
47
|
+
*
|
|
48
|
+
* __Example 1: Using a Pre-configured Device__
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const mobileEmulation = { deviceName: "iPhone 14 Pro Max" };
|
|
51
|
+
* const browser = new Browser(mobileEmulation);
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* __Example 2: Using Custom Screen Configuration__
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const mobileEmulation = { deviceMetrics: { width: 360, height: 640, pixelRatio: 3.0 }, userAgent: 'My Agent' };
|
|
57
|
+
* const browser = new Browser(mobileEmulation);
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* __Example 3: Providing a WebDriver Instance With Mobile Emulation__
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const driver = new Builder().forBrowser('chrome').build();
|
|
63
|
+
* const mobileEmulation = { deviceName: "iPhone 14 Pro Max" };
|
|
64
|
+
* const browser = new Browser(driver, mobileEmulation);
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* __Example 4: Enabling BiDi Mode__
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const browser = new Browser({ enableBidi: true });
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* __Example 5: Combining Mobile Emulation and BiDi Mode__
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const browser = new Browser({ mobileEmulation: { deviceName: "iPhone 14 Pro Max" }, enableBidi: true });
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* [em]: https://chromedriver.chromium.org/mobile-emulation
|
|
78
|
+
* [devem]: https://developer.chrome.com/devtools/docs/device-mode
|
|
79
|
+
*/
|
|
80
|
+
constructor(driverOrOptions, mobileEmulation, enableBidi) {
|
|
81
|
+
var _a;
|
|
82
|
+
let driver;
|
|
83
|
+
// If the first parameter is a driver instance, use it directly.
|
|
84
|
+
if (driverOrOptions && isDriver(driverOrOptions)) {
|
|
85
|
+
driver = driverOrOptions;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const options = driverOrOptions || {};
|
|
89
|
+
if (mobileEmulation && !options.mobileEmulation) {
|
|
90
|
+
options.mobileEmulation = mobileEmulation;
|
|
91
|
+
}
|
|
92
|
+
if (enableBidi && options.enableBidi === undefined) {
|
|
93
|
+
options.enableBidi = enableBidi;
|
|
94
|
+
}
|
|
95
|
+
driver = (_a = options.driver) !== null && _a !== void 0 ? _a : new driver_manager_1.DriverManager().getDriver({
|
|
96
|
+
mobileEmulation: options.mobileEmulation,
|
|
97
|
+
enableBidi: options.enableBidi
|
|
98
|
+
});
|
|
99
|
+
}
|
|
35
100
|
super(driver);
|
|
36
101
|
}
|
|
102
|
+
// A runtime type check (type guard) to determine whether it’s a driver or mobile options
|
|
103
|
+
static isDriver(obj) {
|
|
104
|
+
return obj && typeof obj.getSession === "function";
|
|
105
|
+
}
|
|
37
106
|
close() {
|
|
38
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
108
|
yield this.driver.quit();
|
|
@@ -67,8 +136,8 @@ class Browser extends web_app_1.WebApp {
|
|
|
67
136
|
return browserName;
|
|
68
137
|
});
|
|
69
138
|
}
|
|
70
|
-
getAccessibilityViolations(
|
|
71
|
-
return __awaiter(this,
|
|
139
|
+
getAccessibilityViolations() {
|
|
140
|
+
return __awaiter(this, arguments, void 0, function* (cssSelector = "html", disableRules = ["color-contrast"]) {
|
|
72
141
|
yield this.find(selenium_webdriver_1.By.css(cssSelector));
|
|
73
142
|
const axe = new webdriverjs_1.default(this.driver)
|
|
74
143
|
.include(cssSelector)
|
|
@@ -82,8 +151,8 @@ class Browser extends web_app_1.WebApp {
|
|
|
82
151
|
yield this.driver.manage().logs().get(logging_1.Type.BROWSER);
|
|
83
152
|
});
|
|
84
153
|
}
|
|
85
|
-
getErrorLogs(
|
|
86
|
-
return __awaiter(this,
|
|
154
|
+
getErrorLogs() {
|
|
155
|
+
return __awaiter(this, arguments, void 0, function* (excludeList = ["favicon.ico"], logLevel = logging_1.Level.SEVERE) {
|
|
87
156
|
const errors = [];
|
|
88
157
|
const capabilities = (yield (yield this.driver).getCapabilities());
|
|
89
158
|
const platform = capabilities.getPlatform().toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/selenium/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wEAA+C;AAC/C,2DAA2D;AAC3D,4DAA6D;AAC7D,qDAAiD;AACjD,uCAAmC;AAEnC,yDAAwG;AAA/F,wGAAA,EAAE,OAAA;AAAE,yGAAA,GAAG,OAAA;AAAqB,2GAAA,KAAK,OAAA;AAAE,gHAAA,UAAU,OAAA;AAAE,yHAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/selenium/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/selenium/conditions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAA+D;AAI/D,MAAM,eAAe,GAAG,UAAU,OAAO;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC5C,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/selenium/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,21 @@ import { Options as ChromeOptions } from "selenium-webdriver/chrome";
|
|
|
3
3
|
import { Options as EdgeOptions } from "selenium-webdriver/edge";
|
|
4
4
|
import { Options as FirefoxOptions } from "selenium-webdriver/firefox";
|
|
5
5
|
import { Options as SafariOptions } from "selenium-webdriver/safari";
|
|
6
|
+
export interface DriverOptions {
|
|
7
|
+
mobileEmulation?: {
|
|
8
|
+
deviceName: string;
|
|
9
|
+
} | {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
pixelRatio: number;
|
|
13
|
+
} | any;
|
|
14
|
+
enableBidi?: boolean;
|
|
15
|
+
}
|
|
6
16
|
export declare class DriverManager {
|
|
7
17
|
DEFAULT_CHROMIUM_OPTIONS: string[];
|
|
8
|
-
getDriver(): ThenableWebDriver;
|
|
9
|
-
getChromeOptions(args?: string[]): ChromeOptions;
|
|
10
|
-
getChromeDriver(options?: ChromeOptions): ThenableWebDriver;
|
|
18
|
+
getDriver(options?: DriverOptions): ThenableWebDriver;
|
|
19
|
+
getChromeOptions(args?: string[], options?: DriverOptions): ChromeOptions;
|
|
20
|
+
getChromeDriver(options?: ChromeOptions | DriverOptions): ThenableWebDriver;
|
|
11
21
|
getEdgeOptions(args?: string[]): EdgeOptions;
|
|
12
22
|
getEdgeDriver(options?: EdgeOptions): ThenableWebDriver;
|
|
13
23
|
getFirefoxOptions(): FirefoxOptions;
|
|
@@ -20,10 +20,11 @@ class DriverManager {
|
|
|
20
20
|
'--ignore-certificate-errors'
|
|
21
21
|
];
|
|
22
22
|
}
|
|
23
|
-
getDriver() {
|
|
23
|
+
getDriver(options = {}) {
|
|
24
24
|
switch (settings_1.Settings.browserName) {
|
|
25
25
|
case selenium_webdriver_1.Browser.CHROME: {
|
|
26
|
-
|
|
26
|
+
// Pass mobileOptions as second parameter, not as the options instance.
|
|
27
|
+
return this.getChromeDriver(options);
|
|
27
28
|
}
|
|
28
29
|
case selenium_webdriver_1.Browser.EDGE: {
|
|
29
30
|
return this.getEdgeDriver();
|
|
@@ -39,13 +40,13 @@ class DriverManager {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
|
-
getChromeOptions(args = this.DEFAULT_CHROMIUM_OPTIONS) {
|
|
43
|
-
const
|
|
43
|
+
getChromeOptions(args = this.DEFAULT_CHROMIUM_OPTIONS, options = {}) {
|
|
44
|
+
const chromeOptions = new chrome_1.Options();
|
|
44
45
|
args.forEach(argument => {
|
|
45
|
-
|
|
46
|
+
chromeOptions.addArguments(argument);
|
|
46
47
|
});
|
|
47
48
|
if (settings_1.Settings.headless) {
|
|
48
|
-
|
|
49
|
+
chromeOptions.addArguments('--headless=new');
|
|
49
50
|
}
|
|
50
51
|
// We must disable the Chrome sandbox when running Chrome inside Docker.
|
|
51
52
|
// Chrome's sandbox needs more permissions than Docker allows by default.
|
|
@@ -53,13 +54,26 @@ class DriverManager {
|
|
|
53
54
|
// - https://github.com/GoogleChrome/puppeteer/issues/560
|
|
54
55
|
// - https://github.com/microsoft/playwright/issues/1977#issuecomment-619397496
|
|
55
56
|
if (process.env["CI_CONTAINER"]) {
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
chromeOptions.addArguments('--no-sandbox');
|
|
58
|
+
chromeOptions.addArguments('--disable-setuid-sandbox');
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
if (options.mobileEmulation) {
|
|
61
|
+
chromeOptions.setMobileEmulation(options.mobileEmulation);
|
|
62
|
+
}
|
|
63
|
+
if (options.enableBidi) {
|
|
64
|
+
chromeOptions.enableBidi();
|
|
65
|
+
}
|
|
66
|
+
return chromeOptions;
|
|
60
67
|
}
|
|
61
|
-
getChromeDriver(options
|
|
62
|
-
|
|
68
|
+
getChromeDriver(options) {
|
|
69
|
+
let chromeOptions;
|
|
70
|
+
if (options instanceof chrome_1.Options) {
|
|
71
|
+
chromeOptions = options;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
chromeOptions = this.getChromeOptions(this.DEFAULT_CHROMIUM_OPTIONS, options);
|
|
75
|
+
}
|
|
76
|
+
return new selenium_webdriver_1.Builder().forBrowser(selenium_webdriver_1.Browser.CHROME).setChromeOptions(chromeOptions).build();
|
|
63
77
|
}
|
|
64
78
|
getEdgeOptions(args = this.DEFAULT_CHROMIUM_OPTIONS) {
|
|
65
79
|
const options = new edge_1.Options();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-manager.js","sourceRoot":"","sources":["../../src/selenium/driver-manager.ts"],"names":[],"mappings":";;;AAAA,2DAAkF;AAClF,sDAAqE;AACrE,kDAAiE;AACjE,wDAAgH;AAChH,sDAAqE;AACrE,6EAA6E;AAC7E,mDAAgD;
|
|
1
|
+
{"version":3,"file":"driver-manager.js","sourceRoot":"","sources":["../../src/selenium/driver-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/selenium/web-app.js
CHANGED
|
@@ -23,8 +23,8 @@ class WebApp {
|
|
|
23
23
|
constructor(driver) {
|
|
24
24
|
this.driver = driver;
|
|
25
25
|
}
|
|
26
|
-
find(
|
|
27
|
-
return __awaiter(this,
|
|
26
|
+
find(locator_1) {
|
|
27
|
+
return __awaiter(this, arguments, void 0, function* (locator, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
28
28
|
const errorMessage = `Failed to find element located by ${locator}.`;
|
|
29
29
|
if (locator instanceof selenium_webdriver_1.By) {
|
|
30
30
|
return yield this.driver.wait(selenium_webdriver_1.until.elementLocated(locator), timeout, errorMessage, pollTimeout);
|
|
@@ -44,8 +44,8 @@ class WebApp {
|
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
findChild(
|
|
48
|
-
return __awaiter(this,
|
|
47
|
+
findChild(rootElement_1, locator_1) {
|
|
48
|
+
return __awaiter(this, arguments, void 0, function* (rootElement, locator, { waitForChild = true, timeout = 10000, pollTimeout = 25 } = {}) {
|
|
49
49
|
if (!(rootElement instanceof selenium_webdriver_1.WebElement)) {
|
|
50
50
|
rootElement = yield this.find(rootElement);
|
|
51
51
|
}
|
|
@@ -58,8 +58,8 @@ class WebApp {
|
|
|
58
58
|
: rootElement.findElement(selenium_webdriver_1.By.css(locator));
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
findChildren(
|
|
62
|
-
return __awaiter(this,
|
|
61
|
+
findChildren(rootElement_1, locator_1) {
|
|
62
|
+
return __awaiter(this, arguments, void 0, function* (rootElement, locator, { waitForChild = true, timeout = 10000, pollTimeout = 25 } = {}) {
|
|
63
63
|
if (!(rootElement instanceof selenium_webdriver_1.WebElement)) {
|
|
64
64
|
rootElement = yield this.find(rootElement);
|
|
65
65
|
}
|
|
@@ -72,8 +72,8 @@ class WebApp {
|
|
|
72
72
|
: rootElement.findElements(selenium_webdriver_1.By.css(locator));
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
click(
|
|
76
|
-
return __awaiter(this,
|
|
75
|
+
click(element_1) {
|
|
76
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
77
77
|
try {
|
|
78
78
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
79
79
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
@@ -96,8 +96,8 @@ class WebApp {
|
|
|
96
96
|
}
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
-
hover(
|
|
100
|
-
return __awaiter(this,
|
|
99
|
+
hover(element_1) {
|
|
100
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
101
101
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
102
102
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
103
103
|
}
|
|
@@ -105,8 +105,8 @@ class WebApp {
|
|
|
105
105
|
yield actions.move({ origin: element }).perform();
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
focus(
|
|
109
|
-
return __awaiter(this,
|
|
108
|
+
focus(element_1) {
|
|
109
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
110
110
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
111
111
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
112
112
|
}
|
|
@@ -114,8 +114,8 @@ class WebApp {
|
|
|
114
114
|
yield this.driver.sleep(50);
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
|
-
contextClick(
|
|
118
|
-
return __awaiter(this,
|
|
117
|
+
contextClick(element_1) {
|
|
118
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
119
119
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
120
120
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
121
121
|
}
|
|
@@ -123,8 +123,8 @@ class WebApp {
|
|
|
123
123
|
yield actions.contextClick(element).perform();
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
|
-
doubleClick(
|
|
127
|
-
return __awaiter(this,
|
|
126
|
+
doubleClick(element_1) {
|
|
127
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
128
128
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
129
129
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
130
130
|
}
|
|
@@ -132,14 +132,14 @@ class WebApp {
|
|
|
132
132
|
yield actions.doubleClick(element).perform();
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
waitForAnimationAndClick(
|
|
136
|
-
return __awaiter(this,
|
|
135
|
+
waitForAnimationAndClick(element_1) {
|
|
136
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 50 } = {}) {
|
|
137
137
|
yield this.waitForAnimation(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
138
138
|
yield this.click(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
|
-
scrollAndClick(
|
|
142
|
-
return __awaiter(this,
|
|
141
|
+
scrollAndClick(element_1) {
|
|
142
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
143
143
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
144
144
|
element = yield this.find(element, { timeout: timeout, pollTimeout: pollTimeout });
|
|
145
145
|
}
|
|
@@ -147,8 +147,8 @@ class WebApp {
|
|
|
147
147
|
yield element.click();
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
-
scrollIntoView(
|
|
151
|
-
return __awaiter(this,
|
|
150
|
+
scrollIntoView(locator_1) {
|
|
151
|
+
return __awaiter(this, arguments, void 0, function* (locator, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
152
152
|
const element = yield this.find(locator, { timeout: timeout, pollTimeout: pollTimeout });
|
|
153
153
|
yield this.driver.executeScript("arguments[0].scrollIntoView({ behavior: 'instant', block: 'center', inline: 'nearest' });", element);
|
|
154
154
|
});
|
|
@@ -182,8 +182,8 @@ class WebApp {
|
|
|
182
182
|
yield actions.dragAndDrop(element, { x: offsetX, y: offsetY }).perform();
|
|
183
183
|
});
|
|
184
184
|
}
|
|
185
|
-
type(
|
|
186
|
-
return __awaiter(this,
|
|
185
|
+
type(element_1, text_1) {
|
|
186
|
+
return __awaiter(this, arguments, void 0, function* (element, text, { clear = true, sendEnter = false } = {}) {
|
|
187
187
|
if (!(element instanceof selenium_webdriver_1.WebElement)) {
|
|
188
188
|
element = yield this.find(element);
|
|
189
189
|
}
|
|
@@ -224,23 +224,23 @@ class WebApp {
|
|
|
224
224
|
yield this.sendKeysCombination([control, key]);
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
|
-
isVisible(
|
|
228
|
-
return __awaiter(this,
|
|
227
|
+
isVisible(element_1) {
|
|
228
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
229
229
|
return yield this.waitSafely(conditions_1.EC.isVisible(element), { timeout: timeout, pollTimeout: pollTimeout });
|
|
230
230
|
});
|
|
231
231
|
}
|
|
232
|
-
isNotVisible(
|
|
233
|
-
return __awaiter(this,
|
|
232
|
+
isNotVisible(element_1) {
|
|
233
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
234
234
|
return yield this.waitSafely(conditions_1.EC.notVisible(element), { timeout: timeout, pollTimeout: pollTimeout });
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
|
-
isInViewport(
|
|
238
|
-
return __awaiter(this,
|
|
237
|
+
isInViewport(element_1) {
|
|
238
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
239
239
|
return yield this.waitSafely(conditions_1.EC.isInViewport(element), { timeout: timeout, pollTimeout: pollTimeout });
|
|
240
240
|
});
|
|
241
241
|
}
|
|
242
|
-
isNotInViewport(
|
|
243
|
-
return __awaiter(this,
|
|
242
|
+
isNotInViewport(element_1) {
|
|
243
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
244
244
|
return yield this.waitSafely(conditions_1.EC.notInViewport(element), { timeout: timeout, pollTimeout: pollTimeout });
|
|
245
245
|
});
|
|
246
246
|
}
|
|
@@ -272,15 +272,15 @@ class WebApp {
|
|
|
272
272
|
: yield this.waitSafely(conditions_1.EC.hasValue(yield this.find(element), value));
|
|
273
273
|
});
|
|
274
274
|
}
|
|
275
|
-
hasAttribute(
|
|
276
|
-
return __awaiter(this,
|
|
275
|
+
hasAttribute(element_1, attribute_1, value_1) {
|
|
276
|
+
return __awaiter(this, arguments, void 0, function* (element, attribute, value, exactMatch = true) {
|
|
277
277
|
return (element instanceof selenium_webdriver_1.WebElement)
|
|
278
278
|
? yield this.waitSafely(conditions_1.EC.hasAttribute(element, attribute, value, exactMatch))
|
|
279
279
|
: yield this.waitSafely(conditions_1.EC.hasAttribute(yield this.find(element), attribute, value, exactMatch));
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
|
-
hasClass(
|
|
283
|
-
return __awaiter(this,
|
|
282
|
+
hasClass(element_1, value_1) {
|
|
283
|
+
return __awaiter(this, arguments, void 0, function* (element, value, exactMatch = false) {
|
|
284
284
|
return (element instanceof selenium_webdriver_1.WebElement)
|
|
285
285
|
? yield this.waitSafely(conditions_1.EC.hasClass(element, value, exactMatch))
|
|
286
286
|
: yield this.waitSafely(conditions_1.EC.hasClass(yield this.find(element), value, exactMatch));
|
|
@@ -291,13 +291,13 @@ class WebApp {
|
|
|
291
291
|
yield this.driver.sleep(milliseconds);
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
|
-
wait(
|
|
295
|
-
return __awaiter(this,
|
|
294
|
+
wait(condition_1) {
|
|
295
|
+
return __awaiter(this, arguments, void 0, function* (condition, { timeout = 10000, message = 'Failed to satisfy condition.', pollTimeout = 25 } = {}) {
|
|
296
296
|
yield this.driver.wait(condition, timeout, message, pollTimeout);
|
|
297
297
|
});
|
|
298
298
|
}
|
|
299
|
-
waitSafely(
|
|
300
|
-
return __awaiter(this,
|
|
299
|
+
waitSafely(condition_1) {
|
|
300
|
+
return __awaiter(this, arguments, void 0, function* (condition, { timeout = 10000, pollTimeout = 25 } = {}) {
|
|
301
301
|
try {
|
|
302
302
|
yield this.driver.wait(condition, timeout, null, pollTimeout);
|
|
303
303
|
return true;
|
|
@@ -307,8 +307,8 @@ class WebApp {
|
|
|
307
307
|
}
|
|
308
308
|
});
|
|
309
309
|
}
|
|
310
|
-
waitForAnimation(
|
|
311
|
-
return __awaiter(this,
|
|
310
|
+
waitForAnimation(element_1) {
|
|
311
|
+
return __awaiter(this, arguments, void 0, function* (element, { timeout = 10000, pollTimeout = 50 } = {}) {
|
|
312
312
|
const locatorStringValue = (element instanceof selenium_webdriver_1.WebElement)
|
|
313
313
|
? 'element'
|
|
314
314
|
: element;
|