@progress/kendo-e2e 2.6.0 → 3.0.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.
Files changed (43) hide show
  1. package/dist/components/autocomplete.d.ts +9 -0
  2. package/dist/components/autocomplete.js +56 -0
  3. package/dist/components/autocomplete.js.map +1 -0
  4. package/dist/components/combobox.d.ts +5 -0
  5. package/dist/components/combobox.js +11 -0
  6. package/dist/components/combobox.js.map +1 -0
  7. package/dist/components/const.d.ts +262 -0
  8. package/dist/components/const.js +266 -0
  9. package/dist/components/const.js.map +1 -0
  10. package/dist/components/dropdown.d.ts +30 -0
  11. package/dist/components/dropdown.js +163 -0
  12. package/dist/components/dropdown.js.map +1 -0
  13. package/dist/components/grid.d.ts +19 -16
  14. package/dist/components/grid.js +50 -97
  15. package/dist/components/grid.js.map +1 -1
  16. package/dist/components/index.d.ts +9 -5
  17. package/dist/components/index.js +4 -0
  18. package/dist/components/index.js.map +1 -1
  19. package/dist/components/pager.d.ts +10 -4
  20. package/dist/components/pager.js +28 -10
  21. package/dist/components/pager.js.map +1 -1
  22. package/dist/components/popup.d.ts +4 -4
  23. package/dist/components/popup.js +4 -23
  24. package/dist/components/popup.js.map +1 -1
  25. package/dist/components/ui-component.d.ts +16 -7
  26. package/dist/components/ui-component.js +16 -31
  27. package/dist/components/ui-component.js.map +1 -1
  28. package/dist/rendering/html-comparer.js +1 -1
  29. package/dist/rendering/html-comparer.js.map +1 -1
  30. package/dist/selenium/browser.d.ts +1 -1
  31. package/dist/selenium/browser.js +2 -1
  32. package/dist/selenium/browser.js.map +1 -1
  33. package/dist/selenium/conditions.d.ts +5 -5
  34. package/dist/selenium/conditions.js +16 -7
  35. package/dist/selenium/conditions.js.map +1 -1
  36. package/dist/selenium/driver-manager.js +2 -2
  37. package/dist/selenium/driver-manager.js.map +1 -1
  38. package/dist/selenium/web-app.d.ts +83 -24
  39. package/dist/selenium/web-app.js +107 -84
  40. package/dist/selenium/web-app.js.map +1 -1
  41. package/dist/snapshot-cli/capture.js +2 -2
  42. package/dist/snapshot-cli/capture.js.map +1 -1
  43. package/package.json +6 -6
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DropDown = void 0;
13
+ const browser_1 = require("../selenium/browser");
14
+ const conditions_1 = require("../selenium/conditions");
15
+ const const_1 = require("./const");
16
+ const ui_component_1 = require("./ui-component");
17
+ class DropDown extends ui_component_1.UIComponent {
18
+ constructor(browser, locator, rootElement) {
19
+ super(browser, locator, rootElement);
20
+ }
21
+ popupSelector() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ let id;
24
+ const rootAriaControls = yield (yield this.root()).getAttribute("aria-controls");
25
+ if (rootAriaControls !== null) {
26
+ id = rootAriaControls.split("_")[0];
27
+ }
28
+ else {
29
+ const childAriaControls = yield this.findChild("[aria-controls]");
30
+ id = (yield childAriaControls.getAttribute("aria-controls")).split("_")[0];
31
+ }
32
+ // Notes:
33
+ // For DropDownTree "id" is set on child TreeView component.
34
+ // For DropDownList "id" is set on .k-popup.
35
+ // This expression satisfy both.
36
+ return browser_1.By.xpath(`//div[@class="k-child-animation-container"]//div[contains(@id, "${id}")]`);
37
+ });
38
+ }
39
+ popup() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const popup = yield this.popupSelector();
42
+ return yield this.browser.find(popup);
43
+ });
44
+ }
45
+ input() {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ return this.findChild(DropDown.INPUT);
48
+ });
49
+ }
50
+ clear() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return this.findChild(DropDown.CLEAR_VALUE);
53
+ });
54
+ }
55
+ getChips() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ return this.findChildren(const_1.SELECTORS.CHIP);
58
+ });
59
+ }
60
+ select() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ return this.findChild(DropDown.SELECT);
63
+ });
64
+ }
65
+ expand() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ let expander;
68
+ const root = yield this.root();
69
+ if ((yield root.getAttribute("aria-multiselectable")) === "true") {
70
+ expander = root;
71
+ }
72
+ else {
73
+ expander = yield this.select();
74
+ }
75
+ yield expander.click();
76
+ yield this.waitToExpand();
77
+ });
78
+ }
79
+ waitToExpand() {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const popup = yield this.popupSelector();
82
+ yield this.browser.wait(conditions_1.EC.isVisible(popup), { timeout: 10000, message: "Failed to expand popup." });
83
+ yield this.browser.waitForAnimation(popup, { timeout: 3000, pollTimeout: 50 });
84
+ });
85
+ }
86
+ waitToCollapse() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const popup = yield this.popupSelector();
89
+ yield this.browser.wait(conditions_1.EC.notVisible(popup), { timeout: 10000, message: "Failed to collapse popup." });
90
+ yield this.browser.sleep(100); // Wait for animation timeout
91
+ });
92
+ }
93
+ getText() {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ return yield (yield this.root()).getText();
96
+ });
97
+ }
98
+ getValue() {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ const input = yield this.findChild("input");
101
+ return yield input.getAttribute("value");
102
+ });
103
+ }
104
+ getItems({ waitForChild = true } = {}) {
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ return yield this.browser.findChildren(yield this.popupSelector(), "li", { waitForChild: waitForChild });
107
+ });
108
+ }
109
+ getSelectedItem() {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ return yield this.browser.findChild(yield this.popupSelector(), "li.k-selected");
112
+ });
113
+ }
114
+ getFocusedItem() {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ return yield this.browser.findChild(yield this.popupSelector(), "li.k-focus");
117
+ });
118
+ }
119
+ getByIndex(index) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ return (yield this.browser.findChildren(yield this.popupSelector(), "li.k-selected"))[index];
122
+ });
123
+ }
124
+ getByText(text) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ return yield this.browser.findChild(yield this.popupSelector(), browser_1.By.xpath(`.//li[.="${text}"]`));
127
+ });
128
+ }
129
+ selectItemByIndex(index) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ yield this.expand();
132
+ yield (yield this.getByIndex(index)).click();
133
+ yield this.waitToCollapse();
134
+ });
135
+ }
136
+ selectItemByText(text) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ yield this.expand();
139
+ yield (yield this.getByText(text)).click();
140
+ yield this.waitToCollapse();
141
+ });
142
+ }
143
+ isPopupEmpty() {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ const popup = yield this.popup();
146
+ return (yield popup.findElements(browser_1.By.css(".k-no-data"))).length > 0;
147
+ });
148
+ }
149
+ isEnabled() {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ const rootClass = yield (yield this.root()).getAttribute("class");
152
+ const input = yield this.browser.findChild(yield this.root(), "input");
153
+ const isVisuallyEnabled = !rootClass.includes(const_1.STATES.DISABLED);
154
+ const isKeyboardEnabled = yield input.isEnabled();
155
+ return isVisuallyEnabled && isKeyboardEnabled;
156
+ });
157
+ }
158
+ }
159
+ DropDown.INPUT = ".k-input-inner";
160
+ DropDown.CLEAR_VALUE = ".k-clear-value";
161
+ DropDown.SELECT = ".k-input-button";
162
+ exports.DropDown = DropDown;
163
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/components/dropdown.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,29 @@
1
- import { By, ThenableWebDriver, WebElement } from "selenium-webdriver";
2
1
  import { UIComponent } from "./ui-component";
3
2
  import { Pager } from "./pager";
3
+ import { Browser, By, WebElement } from "../selenium/browser";
4
4
  import { SortType } from "./enums";
5
5
  export declare class Grid extends UIComponent {
6
- protected parentElement?: WebElement;
7
- static get Selector(): string;
8
- constructor(driver: ThenableWebDriver, locator?: By, parentElement?: WebElement);
6
+ protected parentElement?: WebElement | By | string;
7
+ static SELECTOR: string;
8
+ static TOOLBAR_ADD_BUTTON: string;
9
+ static TOOLBAR_SAVE_BUTTON: string;
10
+ constructor(browser: Browser, locator?: string, parentElement?: WebElement | By | string);
9
11
  pager(): Promise<Pager>;
10
- dataRows(): Promise<WebElement[]>;
11
- dataRowsCount(): Promise<number>;
12
- isEmpty(): Promise<boolean>;
13
- header(column: number): Promise<WebElement>;
14
- headerFilter(column: number): Promise<WebElement>;
12
+ addButton(): Promise<WebElement>;
13
+ saveChanges(): Promise<WebElement>;
14
+ headerByIndex(column: number): Promise<WebElement>;
15
15
  headerByText(text: string, exactMatch?: boolean): Promise<WebElement>;
16
16
  headerSortType(text: string, exactMatch?: boolean): Promise<SortType>;
17
- getSortOrder(text: string, exactMatch?: boolean): Promise<number>;
18
- headerCell(column: number): Promise<WebElement>;
19
- headerCellInput(column: number): Promise<WebElement>;
20
- headerCellFilterDropDown(column: number): Promise<WebElement>;
21
- headerCellCleanFilterButton(column: number): Promise<WebElement>;
17
+ tableRows(): Promise<WebElement[]>;
18
+ groupRows(): Promise<WebElement[]>;
19
+ masterRows(): Promise<WebElement[]>;
20
+ masterRow(index: number): Promise<WebElement>;
22
21
  cell(row: number, column: number): Promise<WebElement>;
23
22
  cellInput(row: number, column: number): Promise<WebElement>;
24
- cellsByColumn(column: number, limit?: number): Promise<WebElement[]>;
25
- private getGridElement;
23
+ writeInCell(row: number, column: number, text: string, { clear, sendEnter }?: {
24
+ clear?: boolean;
25
+ sendEnter?: boolean;
26
+ }): Promise<void>;
27
+ focusedElement(): Promise<WebElement>;
28
+ isEmpty(): Promise<boolean>;
26
29
  }
@@ -10,78 +10,52 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Grid = void 0;
13
- const selenium_webdriver_1 = require("selenium-webdriver");
14
13
  const ui_component_1 = require("./ui-component");
15
14
  const pager_1 = require("./pager");
16
- const conditions_1 = require("../selenium/conditions");
17
- const settings_1 = require("../settings/settings");
15
+ const const_1 = require("./const");
16
+ const browser_1 = require("../selenium/browser");
18
17
  const enums_1 = require("./enums");
19
18
  class Grid extends ui_component_1.UIComponent {
20
- static get Selector() {
21
- return ".k-grid";
22
- }
23
- constructor(driver, locator = selenium_webdriver_1.By.css(Grid.Selector), parentElement) {
24
- super(driver, locator, parentElement);
19
+ constructor(browser, locator = Grid.SELECTOR, parentElement) {
20
+ super(browser, locator, parentElement);
25
21
  this.parentElement = parentElement;
26
22
  }
27
23
  pager() {
28
24
  return __awaiter(this, void 0, void 0, function* () {
29
- const rootElement = yield this.getRootElement();
30
- return new pager_1.Pager(this.driver, selenium_webdriver_1.By.css(".k-grid-pager"), rootElement);
31
- });
32
- }
33
- dataRows() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const rootElement = yield this.getRootElement();
36
- return yield rootElement.findElements(selenium_webdriver_1.By.css("tbody tr"));
25
+ return new pager_1.Pager(this.browser, pager_1.Pager.SELECTOR, yield this.root());
37
26
  });
38
27
  }
39
- dataRowsCount() {
28
+ addButton() {
40
29
  return __awaiter(this, void 0, void 0, function* () {
41
- return (yield this.dataRows()).length;
30
+ return yield this.findChild(Grid.TOOLBAR_ADD_BUTTON);
42
31
  });
43
32
  }
44
- isEmpty() {
33
+ saveChanges() {
45
34
  return __awaiter(this, void 0, void 0, function* () {
46
- const rootElement = yield this.getRootElement();
47
- return (yield rootElement.findElements(selenium_webdriver_1.By.css(".k-grid-norecords"))).length === 1;
35
+ return yield this.findChild(Grid.TOOLBAR_SAVE_BUTTON);
48
36
  });
49
37
  }
50
- header(column) {
38
+ headerByIndex(column) {
51
39
  return __awaiter(this, void 0, void 0, function* () {
52
- const locator = selenium_webdriver_1.By.css(`thead tr th:nth-of-type(${column})`);
53
- return yield this.getGridElement(locator, `Failed to find header at column ${column}.`);
54
- });
55
- }
56
- headerFilter(column) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const defaultLocator = `thead tr th:nth-of-type(${column}) .k-grid-filter`;
59
- const reactLocator = `thead tr th:nth-of-type(${column}) span.k-i-more-vertical`;
60
- const errorMessage = `Failed to find filter menu inside header at column ${column}.`;
61
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${reactLocator}`), errorMessage);
40
+ const locator = `thead tr th:nth-of-type(${column})`;
41
+ return yield this.findChild(locator);
62
42
  });
63
43
  }
64
44
  headerByText(text, exactMatch = true) {
65
45
  return __awaiter(this, void 0, void 0, function* () {
66
- // Angular and Blazor: Header text is in span with class "k-column-title"
67
- // jQuery, React and Vue: Header text is in span with class "k-link"
68
- let locator = null;
69
- if (exactMatch) {
70
- locator = selenium_webdriver_1.By.xpath(`//thead//tr//th[.='${text}']`);
71
- }
72
- else {
73
- locator = selenium_webdriver_1.By.xpath(`//thead//tr//th[.//*[(@class='k-column-title' or @class='k-link') and contains(.,'${text}')]]`);
74
- }
75
- return yield this.getGridElement(locator, `Failed to find header with "${text}" text.`);
46
+ const locator = exactMatch
47
+ ? browser_1.By.xpath(`//thead//tr//th[.='${text}']`)
48
+ : browser_1.By.xpath(`//thead//tr//th[contains(., '${text}')]`);
49
+ return yield this.findChild(locator);
76
50
  });
77
51
  }
78
52
  headerSortType(text, exactMatch = true) {
79
53
  return __awaiter(this, void 0, void 0, function* () {
80
- const rootElement = yield this.headerByText(text, exactMatch);
81
- if ((yield rootElement.findElements(selenium_webdriver_1.By.css(".k-i-sort-asc-sm"))).length > 0) {
54
+ const header = yield this.headerByText(text, exactMatch);
55
+ if ((yield header.findElements(browser_1.By.css(".k-svg-i-sort-asc-small"))).length > 0) {
82
56
  return enums_1.SortType.Asc;
83
57
  }
84
- if ((yield rootElement.findElements(selenium_webdriver_1.By.css(".k-i-sort-desc-sm"))).length > 0) {
58
+ if ((yield header.findElements(browser_1.By.css(".k-svg-i-sort-desc-small"))).length > 0) {
85
59
  return enums_1.SortType.Desc;
86
60
  }
87
61
  else {
@@ -89,86 +63,65 @@ class Grid extends ui_component_1.UIComponent {
89
63
  }
90
64
  });
91
65
  }
92
- getSortOrder(text, exactMatch = true) {
66
+ tableRows() {
93
67
  return __awaiter(this, void 0, void 0, function* () {
94
- const locator = selenium_webdriver_1.By.css(".k-sort-order");
95
- const rootElement = yield this.headerByText(text, exactMatch);
96
- if ((yield rootElement.findElements(locator)).length > 0) {
97
- const element = yield rootElement.findElement(locator);
98
- return +(yield element.getText());
99
- }
100
- else {
101
- return null;
102
- }
103
- });
104
- }
105
- headerCell(column) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const defaultLocator = `thead tr td:nth-of-type(${column})`;
108
- const reactLocator = `thead tr.k-filter-row th:nth-of-type(${column})`;
109
- const errorMessage = `Failed to find header cell at column ${column}.`;
110
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${reactLocator}`), errorMessage);
68
+ return yield this.browser.findChildren(yield this.root(), "tbody tr");
111
69
  });
112
70
  }
113
- headerCellInput(column) {
71
+ groupRows() {
114
72
  return __awaiter(this, void 0, void 0, function* () {
115
- const defaultLocator = `thead tr td:nth-of-type(${column}) input`;
116
- const reactLocator = `thead tr.k-filter-row th:nth-of-type(${column}) input`;
117
- const errorMessage = `Failed to find input inside header cell at column ${column}.`;
118
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${reactLocator}`), errorMessage);
73
+ return yield this.browser.findChildren(yield this.root(), "tbody tr.k-grouping-row");
119
74
  });
120
75
  }
121
- headerCellFilterDropDown(column) {
76
+ masterRows() {
122
77
  return __awaiter(this, void 0, void 0, function* () {
123
- const defaultLocator = `thead tr td:nth-of-type(${column}) .k-dropdown`;
124
- const reactLocator = `thead tr.k-filter-row th:nth-of-type(${column}) .k-dropdown`;
125
- const errorMessage = `Failed to find filter dropdown inside header cell at column ${column}.`;
126
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${reactLocator}`), errorMessage);
78
+ return yield this.browser.findChildren(yield this.root(), "tbody tr.k-master-row");
127
79
  });
128
80
  }
129
- headerCellCleanFilterButton(column) {
81
+ masterRow(index) {
130
82
  return __awaiter(this, void 0, void 0, function* () {
131
- const defaultLocator = `thead tr td:nth-of-type(${column}) button[title='Clear']`;
132
- const reactLocator = `thead tr.k-filter-row th:nth-of-type(${column}) button[title='Clear']`;
133
- const errorMessage = `Failed to find clear filter button inside header cell at column ${column}.`;
134
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${reactLocator}`), errorMessage);
83
+ return yield this.browser.findChild(yield this.root(), `tbody tr.k-master-row:nth-of-type(${index})`);
135
84
  });
136
85
  }
137
86
  cell(row, column) {
138
87
  return __awaiter(this, void 0, void 0, function* () {
139
- const defaultLocator = `tr:nth-of-type(${row}) td[role='gridcell']:nth-of-type(${column})`;
140
- const vueLocator = `tr.k-master-row:nth-of-type(${row}) td:nth-of-type(${column})`;
141
- const errorMessage = `Failed to find cell at {${row}, ${column}}.`;
142
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${vueLocator}`), errorMessage);
88
+ const locator = `tr:nth-of-type(${row}) td[role='gridcell']:nth-of-type(${column})`;
89
+ return yield this.findChild(locator);
143
90
  });
144
91
  }
145
92
  cellInput(row, column) {
146
93
  return __awaiter(this, void 0, void 0, function* () {
147
- const defaultLocator = `tr:nth-of-type(${row}) td[role='gridcell']:nth-of-type(${column}) input`;
148
- const vueLocator = `tr.k-master-row:nth-of-type(${row}) td:nth-of-type(${column}) input`;
149
- const errorMessage = `Failed to find input at cell {${row}, ${column}}.`;
150
- return yield this.getGridElement(selenium_webdriver_1.By.css(`${defaultLocator}, ${vueLocator}`), errorMessage);
94
+ const locator = `tr:nth-of-type(${row}) td[role='gridcell']:nth-of-type(${column}) input:not([aria-hidden])`;
95
+ return yield this.findChild(locator);
151
96
  });
152
97
  }
153
- cellsByColumn(column, limit) {
98
+ writeInCell(row, column, text, { clear = true, sendEnter = false } = {}) {
154
99
  return __awaiter(this, void 0, void 0, function* () {
155
- const rootElement = yield this.getRootElement();
156
- const cells = yield rootElement.findElements(selenium_webdriver_1.By.css(`tr td:nth-of-type(${column})`));
157
- if (limit !== undefined) {
158
- return cells.slice(0, limit);
100
+ const input = `tr:nth-of-type(${row}) td[role='gridcell']:nth-of-type(${column}) input:not([aria-hidden])`;
101
+ yield this.browser.click(input);
102
+ if (clear) {
103
+ yield this.browser.sendControlKeyCombination('a');
104
+ yield this.browser.sendKey(browser_1.Key.BACK_SPACE);
159
105
  }
160
- else {
161
- return cells;
106
+ yield this.browser.sendKey(text);
107
+ if (sendEnter) {
108
+ yield this.browser.sendKey(browser_1.Key.ENTER);
162
109
  }
163
110
  });
164
111
  }
165
- getGridElement(locator, error) {
112
+ focusedElement() {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ return yield this.findChild('.k-focus');
115
+ });
116
+ }
117
+ isEmpty() {
166
118
  return __awaiter(this, void 0, void 0, function* () {
167
- const rootElement = yield this.getRootElement();
168
- yield this.driver.wait(conditions_1.EC.hasChild(rootElement, locator), settings_1.Settings.timeout, error);
169
- return yield rootElement.findElement(locator);
119
+ return (yield this.findChildren(".k-grid-norecords", { waitForChild: false })).length === 1;
170
120
  });
171
121
  }
172
122
  }
123
+ Grid.SELECTOR = const_1.SELECTORS.GRID;
124
+ Grid.TOOLBAR_ADD_BUTTON = ".k-grid-add";
125
+ Grid.TOOLBAR_SAVE_BUTTON = ".k-grid-save-changes";
173
126
  exports.Grid = Grid;
174
127
  //# sourceMappingURL=grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- export * from './enums';
2
- export * from './grid';
3
- export * from './pager';
4
- export * from './popup';
5
- export * from './ui-component';
1
+ export * from "./autocomplete";
2
+ export * from "./combobox";
3
+ export * from "./const";
4
+ export * from "./dropdown";
5
+ export * from "./enums";
6
+ export * from "./grid";
7
+ export * from "./pager";
8
+ export * from "./popup";
9
+ export * from "./ui-component";
@@ -14,6 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./autocomplete"), exports);
18
+ __exportStar(require("./combobox"), exports);
19
+ __exportStar(require("./const"), exports);
20
+ __exportStar(require("./dropdown"), exports);
17
21
  __exportStar(require("./enums"), exports);
18
22
  __exportStar(require("./grid"), exports);
19
23
  __exportStar(require("./pager"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB;AACxB,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,6CAA2B;AAC3B,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB;AACxB,iDAA+B"}
@@ -1,7 +1,13 @@
1
- import { By, ThenableWebDriver, WebElement } from "selenium-webdriver";
2
1
  import { UIComponent } from "./ui-component";
2
+ import { Browser, By, WebElement } from "../selenium/browser";
3
3
  export declare class Pager extends UIComponent {
4
- protected parentElement?: WebElement;
5
- constructor(driver: ThenableWebDriver, locator?: By, parentElement?: WebElement);
6
- getPageButton(text: string): Promise<WebElement>;
4
+ protected parentElement?: WebElement | By | string;
5
+ static SELECTOR: string;
6
+ static PAGER_INFO: string;
7
+ constructor(browser: Browser, locator?: string, parentElement?: WebElement | By | string);
8
+ info(): Promise<WebElement>;
9
+ infoText(): Promise<string>;
10
+ getNumberButtonByIndex(index: number): Promise<WebElement>;
11
+ getNumberButtonByText(text: number): Promise<WebElement>;
12
+ getNumberButtons(): Promise<WebElement[]>;
7
13
  }
@@ -10,23 +10,41 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Pager = void 0;
13
- const selenium_webdriver_1 = require("selenium-webdriver");
14
- const settings_1 = require("../settings/settings");
15
13
  const ui_component_1 = require("./ui-component");
16
- const conditions_1 = require("../selenium/conditions");
14
+ const const_1 = require("./const");
15
+ const browser_1 = require("../selenium/browser");
17
16
  class Pager extends ui_component_1.UIComponent {
18
- constructor(driver, locator = selenium_webdriver_1.By.css(".k-grid-pager"), parentElement) {
19
- super(driver, locator, parentElement);
17
+ constructor(browser, locator = Pager.SELECTOR, parentElement) {
18
+ super(browser, locator, parentElement);
20
19
  this.parentElement = parentElement;
21
20
  }
22
- getPageButton(text) {
21
+ info() {
23
22
  return __awaiter(this, void 0, void 0, function* () {
24
- const pageButtonLocator = selenium_webdriver_1.By.xpath(`//li[.='${text}']`);
25
- const element = yield this.getRootElement();
26
- yield this.driver.wait(conditions_1.EC.hasChild(element, pageButtonLocator), settings_1.Settings.timeout, `Failed to find ${text} page.`);
27
- return yield element.findElement(pageButtonLocator);
23
+ return yield this.findChild(Pager.PAGER_INFO);
24
+ });
25
+ }
26
+ infoText() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return yield (yield this.info()).getText();
29
+ });
30
+ }
31
+ getNumberButtonByIndex(index) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ return yield this.findChild(`.k-pager-numbers button:nth-of-type(${index})`);
34
+ });
35
+ }
36
+ getNumberButtonByText(text) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ return yield this.findChild(browser_1.By.xpath(`//button[.='${text}']`));
39
+ });
40
+ }
41
+ getNumberButtons() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return yield this.findChildren('.k-pager-numbers button');
28
44
  });
29
45
  }
30
46
  }
47
+ Pager.SELECTOR = const_1.SELECTORS.PAGER;
48
+ Pager.PAGER_INFO = ".k-pager-info";
31
49
  exports.Pager = Pager;
32
50
  //# sourceMappingURL=pager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pager.js","sourceRoot":"","sources":["../../src/components/pager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAuE;AACvE,mDAAgD;AAChD,iDAA6C;AAC7C,uDAA4C;AAE5C,MAAa,KAAM,SAAQ,0BAAW;IAClC,YAAY,MAAyB,EAAE,OAAO,GAAG,uBAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAY,aAA0B;QAC1G,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAD0C,kBAAa,GAAb,aAAa,CAAa;IAE9G,CAAC;IAEY,aAAa,CAAC,IAAY;;YACnC,MAAM,iBAAiB,GAAG,uBAAE,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACxD,mBAAQ,CAAC,OAAO,EAChB,kBAAkB,IAAI,QAAQ,CAAC,CAAC;YACtC,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC;KAAA;CACJ;AAbD,sBAaC"}
1
+ {"version":3,"file":"pager.js","sourceRoot":"","sources":["../../src/components/pager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA6C;AAC7C,mCAAoC;AACpC,iDAA8D;AAE9D,MAAa,KAAM,SAAQ,0BAAW;IAIlC,YAAY,OAAgB,EAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAY,aAAwC;QACtG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QADuB,kBAAa,GAAb,aAAa,CAA2B;IAE1G,CAAC;IAEY,IAAI;;YACb,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;KAAA;IAEY,QAAQ;;YACjB,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC;KAAA;IAEY,sBAAsB,CAAC,KAAa;;YAC7C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,uCAAuC,KAAK,GAAG,CAAC,CAAC;QACjF,CAAC;KAAA;IAEY,qBAAqB,CAAC,IAAY;;YAC3C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAE,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC;KAAA;IAEY,gBAAgB;;YACzB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;QAC9D,CAAC;KAAA;;AAzBa,cAAQ,GAAG,iBAAS,CAAC,KAAK,CAAC;AAC3B,gBAAU,GAAG,eAAe,CAAC;AAFlC,sBAAK"}
@@ -1,7 +1,7 @@
1
- import { By, ThenableWebDriver, WebElement } from "selenium-webdriver";
2
1
  import { UIComponent } from "./ui-component";
2
+ import { Browser, By, WebElement } from "../selenium/browser";
3
3
  export declare class Popup extends UIComponent {
4
- protected parentElement?: WebElement;
5
- constructor(driver: ThenableWebDriver, locator?: By, parentElement?: WebElement);
6
- getListItem(text: string): Promise<WebElement>;
4
+ protected parentElement?: WebElement | By | string;
5
+ static SELECTOR: string;
6
+ constructor(browser: Browser, locator?: string, parentElement?: WebElement | By | string);
7
7
  }
@@ -1,33 +1,14 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.Popup = void 0;
13
- const selenium_webdriver_1 = require("selenium-webdriver");
14
- const settings_1 = require("../settings/settings");
15
4
  const ui_component_1 = require("./ui-component");
16
- const conditions_1 = require("../selenium/conditions");
5
+ const const_1 = require("./const");
17
6
  class Popup extends ui_component_1.UIComponent {
18
- constructor(driver, locator = selenium_webdriver_1.By.css(".k-popup"), parentElement) {
19
- super(driver, locator, parentElement);
7
+ constructor(browser, locator = Popup.SELECTOR, parentElement) {
8
+ super(browser, locator, parentElement);
20
9
  this.parentElement = parentElement;
21
10
  }
22
- getListItem(text) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const locator = selenium_webdriver_1.By.xpath(`//div[contains(@class, 'k-popup')]//li[.='${text}']`);
25
- const rootElement = yield this.getRootElement();
26
- yield this.driver.wait(conditions_1.EC.hasChild(rootElement, locator), settings_1.Settings.timeout, `Failed to find ${text} list item in popup.`);
27
- const listItem = yield rootElement.findElement(locator);
28
- return this.driver.wait(selenium_webdriver_1.until.elementIsVisible(listItem), settings_1.Settings.timeout, `List item ${text} not visible.`);
29
- });
30
- }
31
11
  }
12
+ Popup.SELECTOR = const_1.SELECTORS.POPUP;
32
13
  exports.Popup = Popup;
33
14
  //# sourceMappingURL=popup.js.map