d5-testing-library 1.8.0-alpha.4 → 1.8.0-alpha.5
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/FormEdit-TOZGO3OB.mjs +7 -0
- package/dist/ListForm-2ZNDPNHK.mjs +7 -0
- package/dist/TreeView-RSM2623Z.mjs +8 -0
- package/dist/{chunk-TFKTH7JY.mjs → chunk-35I6E2YD.mjs} +1 -1
- package/dist/{chunk-LLH235HI.mjs → chunk-AHJAA7VV.mjs} +1 -1
- package/dist/{chunk-HXXWTKEP.mjs → chunk-E4DNUJAB.mjs} +1 -1
- package/dist/{chunk-JGX24TXO.mjs → chunk-NWVB4S3G.mjs} +107 -13
- package/dist/cjs/d5-testing-library.cjs +169 -63
- package/dist/d5-testing-library.d.ts +2 -1
- package/dist/d5-testing-library.legacy-esm.js +4 -4
- package/dist/d5-testing-library.mjs +4 -4
- package/package.json +1 -1
- package/dist/FormEdit-VOA5OIJ2.mjs +0 -7
- package/dist/ListForm-FHAD7GLJ.mjs +0 -7
- package/dist/TreeView-QDCXAJZ2.mjs +0 -8
|
@@ -262,6 +262,7 @@ var ControlClass = /* @__PURE__ */ ((ControlClass2) => {
|
|
|
262
262
|
ControlClass2["SingleDateRange"] = "single-date-range-control";
|
|
263
263
|
ControlClass2["BooleanSelector"] = "buttons-group";
|
|
264
264
|
ControlClass2["ButtonGroup"] = "button-group-field";
|
|
265
|
+
ControlClass2["HeaderFilterDictionary"] = "header-filter-dictionary";
|
|
265
266
|
return ControlClass2;
|
|
266
267
|
})(ControlClass || {});
|
|
267
268
|
|
|
@@ -679,6 +680,97 @@ var DateEditor = class extends AbstractDXEditorWithInput {
|
|
|
679
680
|
}
|
|
680
681
|
};
|
|
681
682
|
|
|
683
|
+
// src/pageObjects/elements/Editors/HeaderFilterDictionary.ts
|
|
684
|
+
import { By as By11, Key as Key4 } from "selenium-webdriver";
|
|
685
|
+
var TAGS_SELECTOR2 = ".dx-tag .tag-text";
|
|
686
|
+
var DX_TAG_CONTAINER2 = "dx-tag-container";
|
|
687
|
+
var DX_TEXTEDITOR_EMPTY3 = "dx-texteditor-empty";
|
|
688
|
+
var CUSTOM_OPTION_LIST_SELECTOR = "custom-list";
|
|
689
|
+
var SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2 = "d5-multi-select-item";
|
|
690
|
+
var TAG_BOX_LIST_ITEM_SELECTOR2 = '.dx-overlay-wrapper .dx-list-item[aria-selected="true"]';
|
|
691
|
+
var combinedOptionHeaderFilterDictValueXpath = (value) => `//div[contains(@class, '${SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2}') and contains(text(), '${value}')]`;
|
|
692
|
+
var dropDownHeaderFilterDictionaryOptionClick = async (optionValue, driver, dataTEST = "", delay = true) => {
|
|
693
|
+
const { implicit } = await driver.manage().getTimeouts();
|
|
694
|
+
let optElement = null;
|
|
695
|
+
const timeout = delay ? implicit : 600;
|
|
696
|
+
let err = null;
|
|
697
|
+
try {
|
|
698
|
+
const calendarPopoverSelector = byTestIdCssSelector(`${dataTEST}`);
|
|
699
|
+
await driver.manage().setTimeouts({ implicit: timeout });
|
|
700
|
+
const calendarPopoverElement = await driver.findElement(By11.css(calendarPopoverSelector));
|
|
701
|
+
const customOptionList = calendarPopoverElement.findElement(By11.css(`.${CUSTOM_OPTION_LIST_SELECTOR}`));
|
|
702
|
+
optElement = await customOptionList.findElement(By11.xpath(combinedOptionHeaderFilterDictValueXpath(optionValue)));
|
|
703
|
+
await click(optElement, driver);
|
|
704
|
+
} catch (e) {
|
|
705
|
+
err = new Error(`Item not found: "${optionValue}"`);
|
|
706
|
+
} finally {
|
|
707
|
+
await driver.manage().setTimeouts({ implicit });
|
|
708
|
+
}
|
|
709
|
+
if (err)
|
|
710
|
+
throw err;
|
|
711
|
+
};
|
|
712
|
+
var HeaderFilterDictionary = class extends AbstractDXEditorWithInput {
|
|
713
|
+
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
714
|
+
super(parentCssSelector, elementCssSelector, driver);
|
|
715
|
+
this.setClearStrategy(new ClearButtonStrategy(this.getFullCssSelector(), this.driver));
|
|
716
|
+
}
|
|
717
|
+
async setTagBoxInputValue(values) {
|
|
718
|
+
const lastElement = values[values.length - 1];
|
|
719
|
+
const inputEl = await this.getInputElement();
|
|
720
|
+
await inputEl.click();
|
|
721
|
+
for (const value of values) {
|
|
722
|
+
await this.selectOption(inputEl, value, lastElement);
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
async waitOptionSelection() {
|
|
726
|
+
await fixElementStaleError(By11.css(TAG_BOX_LIST_ITEM_SELECTOR2), this.driver);
|
|
727
|
+
}
|
|
728
|
+
async selectOption(inputEl, value, lastElement) {
|
|
729
|
+
try {
|
|
730
|
+
await inputEl.sendKeys(value);
|
|
731
|
+
const dataTEST = await this.getDataTestId();
|
|
732
|
+
await dropDownHeaderFilterDictionaryOptionClick(value, this.driver, dataTEST);
|
|
733
|
+
const textLength = await inputEl.getAttribute("value").then((value2) => value2.length);
|
|
734
|
+
for (let i = 0; i < textLength; i++) {
|
|
735
|
+
await inputEl.sendKeys(Key4.BACK_SPACE);
|
|
736
|
+
}
|
|
737
|
+
} catch (error) {
|
|
738
|
+
throw error;
|
|
739
|
+
}
|
|
740
|
+
await this.waitOptionSelection();
|
|
741
|
+
if (value !== lastElement) {
|
|
742
|
+
await inputEl.clear();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
async getHeaderFilterDictionaryInputValue() {
|
|
746
|
+
if (await this.isHeaderFilterDictionaryEmpty()) {
|
|
747
|
+
return [];
|
|
748
|
+
}
|
|
749
|
+
const tags = await this.driver.findElements(
|
|
750
|
+
By11.css(`${this.getFullCssSelector()} .${DX_TAG_CONTAINER2} ${TAGS_SELECTOR2}`)
|
|
751
|
+
);
|
|
752
|
+
const values = [];
|
|
753
|
+
for (const tag of tags) {
|
|
754
|
+
values.push(await tag.getAttribute("textContent"));
|
|
755
|
+
}
|
|
756
|
+
return values;
|
|
757
|
+
}
|
|
758
|
+
async isHeaderFilterDictionaryEmpty() {
|
|
759
|
+
const classAttribute = await this.getClasses();
|
|
760
|
+
return classAttribute.includes(DX_TEXTEDITOR_EMPTY3);
|
|
761
|
+
}
|
|
762
|
+
async getValue() {
|
|
763
|
+
const value = await this.getHeaderFilterDictionaryInputValue();
|
|
764
|
+
return value.length ? value : null;
|
|
765
|
+
}
|
|
766
|
+
async setValue(values) {
|
|
767
|
+
if (!Array.isArray(values)) {
|
|
768
|
+
values = [values];
|
|
769
|
+
}
|
|
770
|
+
await this.setTagBoxInputValue(values);
|
|
771
|
+
}
|
|
772
|
+
};
|
|
773
|
+
|
|
682
774
|
// src/pageObjects/elements/Editors/editorFactory.ts
|
|
683
775
|
var editorFactory = async (parentCssSelector, elementCssSelector, driver) => {
|
|
684
776
|
const elementInstance = new AbstractFormElement(parentCssSelector, elementCssSelector, driver);
|
|
@@ -702,6 +794,8 @@ var editorFactory = async (parentCssSelector, elementCssSelector, driver) => {
|
|
|
702
794
|
return new BooleanSelector(parentCssSelector, elementCssSelector, driver);
|
|
703
795
|
if (classSting.includes("button-group-field" /* ButtonGroup */))
|
|
704
796
|
return new ButtonGroup(parentCssSelector, elementCssSelector, driver);
|
|
797
|
+
if (classSting.includes("header-filter-dictionary" /* HeaderFilterDictionary */))
|
|
798
|
+
return new HeaderFilterDictionary(parentCssSelector, elementCssSelector, driver);
|
|
705
799
|
throw new Error("Unknown type of editor. Please write ticket to the support");
|
|
706
800
|
};
|
|
707
801
|
|
|
@@ -860,7 +954,7 @@ var FormField = class extends AbstractEditor {
|
|
|
860
954
|
};
|
|
861
955
|
|
|
862
956
|
// src/pageObjects/elements/Forms/Form.ts
|
|
863
|
-
import { By as
|
|
957
|
+
import { By as By15 } from "selenium-webdriver";
|
|
864
958
|
|
|
865
959
|
// src/pageObjects/elements/TableToolbar/AbstractButton.ts
|
|
866
960
|
var AbstractButton = class extends AbstractElementWithParent {
|
|
@@ -883,7 +977,7 @@ var AbstractButton = class extends AbstractElementWithParent {
|
|
|
883
977
|
};
|
|
884
978
|
|
|
885
979
|
// src/pageObjects/elements/DXComponents/DXButton.ts
|
|
886
|
-
import { By as
|
|
980
|
+
import { By as By12 } from "selenium-webdriver";
|
|
887
981
|
var DXButton = class extends AbstractButton {
|
|
888
982
|
async getText() {
|
|
889
983
|
const classes = await this.getClasses();
|
|
@@ -891,7 +985,7 @@ var DXButton = class extends AbstractButton {
|
|
|
891
985
|
return null;
|
|
892
986
|
}
|
|
893
987
|
const el = await this.getElement();
|
|
894
|
-
const textEl = el.findElement(
|
|
988
|
+
const textEl = el.findElement(By12.className("dx-button-text"));
|
|
895
989
|
return await textEl.getText();
|
|
896
990
|
}
|
|
897
991
|
};
|
|
@@ -921,7 +1015,7 @@ var Panel = class extends AbstractGroup {
|
|
|
921
1015
|
};
|
|
922
1016
|
|
|
923
1017
|
// src/pageObjects/elements/Groups/TabPanel.ts
|
|
924
|
-
import { By as
|
|
1018
|
+
import { By as By13 } from "selenium-webdriver";
|
|
925
1019
|
var TabPanelItem = class extends AbstractGroup {
|
|
926
1020
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
927
1021
|
super(parentCssSelector, elementCssSelector, driver);
|
|
@@ -931,7 +1025,7 @@ var TabPanelItem = class extends AbstractGroup {
|
|
|
931
1025
|
}
|
|
932
1026
|
async isActive() {
|
|
933
1027
|
const tabPanelItemElement = await this.getElement();
|
|
934
|
-
const grandparentTab = await tabPanelItemElement.findElement(
|
|
1028
|
+
const grandparentTab = await tabPanelItemElement.findElement(By13.xpath('ancestor::div[@role="tab"][1]'));
|
|
935
1029
|
return await grandparentTab.getAttribute("aria-selected") === "true";
|
|
936
1030
|
}
|
|
937
1031
|
async getTitle() {
|
|
@@ -948,7 +1042,7 @@ var TabPanel = class extends AbstractGroup {
|
|
|
948
1042
|
};
|
|
949
1043
|
|
|
950
1044
|
// src/pageObjects/elements/Groups/Accordion/AccordionItem.ts
|
|
951
|
-
import { By as
|
|
1045
|
+
import { By as By14 } from "selenium-webdriver";
|
|
952
1046
|
var ACCORDION_TITLE_CONTAINER = "accordion-title-container";
|
|
953
1047
|
var AccordionItem = class extends AbstractGroup {
|
|
954
1048
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -960,7 +1054,7 @@ var AccordionItem = class extends AbstractGroup {
|
|
|
960
1054
|
}
|
|
961
1055
|
async clickAccordionItemTitle() {
|
|
962
1056
|
const accordionElement = await this.getElement();
|
|
963
|
-
const accordTitleElement = await accordionElement.findElement(
|
|
1057
|
+
const accordTitleElement = await accordionElement.findElement(By14.className(ACCORDION_TITLE_CONTAINER));
|
|
964
1058
|
await accordTitleElement.click();
|
|
965
1059
|
}
|
|
966
1060
|
async click() {
|
|
@@ -1148,15 +1242,15 @@ async function classDependencyInjector(formType) {
|
|
|
1148
1242
|
let SubFormFactoryClass;
|
|
1149
1243
|
switch (formType) {
|
|
1150
1244
|
case "1" /* LIST */:
|
|
1151
|
-
SubFormFactoryClass = (await import("./ListForm-
|
|
1245
|
+
SubFormFactoryClass = (await import("./ListForm-2ZNDPNHK.mjs")).default;
|
|
1152
1246
|
break;
|
|
1153
1247
|
case "3" /* TREE */:
|
|
1154
|
-
SubFormFactoryClass = (await import("./TreeView-
|
|
1248
|
+
SubFormFactoryClass = (await import("./TreeView-RSM2623Z.mjs")).default;
|
|
1155
1249
|
break;
|
|
1156
1250
|
case "2" /* EDIT */:
|
|
1157
1251
|
case "99" /* FREE_FORM */:
|
|
1158
1252
|
case "4" /* REPORT */:
|
|
1159
|
-
SubFormFactoryClass = (await import("./FormEdit-
|
|
1253
|
+
SubFormFactoryClass = (await import("./FormEdit-TOZGO3OB.mjs")).default;
|
|
1160
1254
|
break;
|
|
1161
1255
|
default:
|
|
1162
1256
|
throw new Error(`Unsupported form type ${formType}`);
|
|
@@ -1186,10 +1280,10 @@ var Form = class extends AbstractForm {
|
|
|
1186
1280
|
*/
|
|
1187
1281
|
async getTitleText() {
|
|
1188
1282
|
if (await this.isModal()) {
|
|
1189
|
-
const titleEl2 = await this.driver.findElement(
|
|
1283
|
+
const titleEl2 = await this.driver.findElement(By15.css(`${this.popupContainerCssSelector} .popup-title`));
|
|
1190
1284
|
return titleEl2.getText();
|
|
1191
1285
|
}
|
|
1192
|
-
let titleEl = await this.driver.findElement(
|
|
1286
|
+
let titleEl = await this.driver.findElement(By15.className("main-toolbar-form-title"));
|
|
1193
1287
|
return titleEl.getText();
|
|
1194
1288
|
}
|
|
1195
1289
|
setSubFormMode() {
|
|
@@ -1207,7 +1301,7 @@ var Form = class extends AbstractForm {
|
|
|
1207
1301
|
*/
|
|
1208
1302
|
async subForm(name) {
|
|
1209
1303
|
const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name));
|
|
1210
|
-
const byCssSelector =
|
|
1304
|
+
const byCssSelector = By15.css(cssSelector);
|
|
1211
1305
|
const subFormEl = await this.driver.findElement(byCssSelector);
|
|
1212
1306
|
await waitElementIsVisible({
|
|
1213
1307
|
element: subFormEl,
|
|
@@ -387,6 +387,7 @@ var init_types = __esm({
|
|
|
387
387
|
ControlClass2["SingleDateRange"] = "single-date-range-control";
|
|
388
388
|
ControlClass2["BooleanSelector"] = "buttons-group";
|
|
389
389
|
ControlClass2["ButtonGroup"] = "button-group-field";
|
|
390
|
+
ControlClass2["HeaderFilterDictionary"] = "header-filter-dictionary";
|
|
390
391
|
return ControlClass2;
|
|
391
392
|
})(ControlClass || {});
|
|
392
393
|
}
|
|
@@ -918,6 +919,108 @@ var init_DateEditor = __esm({
|
|
|
918
919
|
}
|
|
919
920
|
});
|
|
920
921
|
|
|
922
|
+
// src/pageObjects/elements/Editors/HeaderFilterDictionary.ts
|
|
923
|
+
var import_selenium_webdriver15, TAGS_SELECTOR2, DX_TAG_CONTAINER2, DX_TEXTEDITOR_EMPTY3, CUSTOM_OPTION_LIST_SELECTOR, SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2, TAG_BOX_LIST_ITEM_SELECTOR2, combinedOptionHeaderFilterDictValueXpath, dropDownHeaderFilterDictionaryOptionClick, HeaderFilterDictionary;
|
|
924
|
+
var init_HeaderFilterDictionary = __esm({
|
|
925
|
+
"src/pageObjects/elements/Editors/HeaderFilterDictionary.ts"() {
|
|
926
|
+
"use strict";
|
|
927
|
+
init_AbstractEditor();
|
|
928
|
+
import_selenium_webdriver15 = require("selenium-webdriver");
|
|
929
|
+
init_actions();
|
|
930
|
+
init_locators();
|
|
931
|
+
init_ClearButtonStrategy();
|
|
932
|
+
init_fixElementStaleError();
|
|
933
|
+
TAGS_SELECTOR2 = ".dx-tag .tag-text";
|
|
934
|
+
DX_TAG_CONTAINER2 = "dx-tag-container";
|
|
935
|
+
DX_TEXTEDITOR_EMPTY3 = "dx-texteditor-empty";
|
|
936
|
+
CUSTOM_OPTION_LIST_SELECTOR = "custom-list";
|
|
937
|
+
SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2 = "d5-multi-select-item";
|
|
938
|
+
TAG_BOX_LIST_ITEM_SELECTOR2 = '.dx-overlay-wrapper .dx-list-item[aria-selected="true"]';
|
|
939
|
+
combinedOptionHeaderFilterDictValueXpath = (value) => `//div[contains(@class, '${SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2}') and contains(text(), '${value}')]`;
|
|
940
|
+
dropDownHeaderFilterDictionaryOptionClick = async (optionValue, driver, dataTEST = "", delay = true) => {
|
|
941
|
+
const { implicit } = await driver.manage().getTimeouts();
|
|
942
|
+
let optElement = null;
|
|
943
|
+
const timeout = delay ? implicit : 600;
|
|
944
|
+
let err = null;
|
|
945
|
+
try {
|
|
946
|
+
const calendarPopoverSelector = byTestIdCssSelector(`${dataTEST}`);
|
|
947
|
+
await driver.manage().setTimeouts({ implicit: timeout });
|
|
948
|
+
const calendarPopoverElement = await driver.findElement(import_selenium_webdriver15.By.css(calendarPopoverSelector));
|
|
949
|
+
const customOptionList = calendarPopoverElement.findElement(import_selenium_webdriver15.By.css(`.${CUSTOM_OPTION_LIST_SELECTOR}`));
|
|
950
|
+
optElement = await customOptionList.findElement(import_selenium_webdriver15.By.xpath(combinedOptionHeaderFilterDictValueXpath(optionValue)));
|
|
951
|
+
await click(optElement, driver);
|
|
952
|
+
} catch (e) {
|
|
953
|
+
err = new Error(`Item not found: "${optionValue}"`);
|
|
954
|
+
} finally {
|
|
955
|
+
await driver.manage().setTimeouts({ implicit });
|
|
956
|
+
}
|
|
957
|
+
if (err)
|
|
958
|
+
throw err;
|
|
959
|
+
};
|
|
960
|
+
HeaderFilterDictionary = class extends AbstractDXEditorWithInput {
|
|
961
|
+
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
962
|
+
super(parentCssSelector, elementCssSelector, driver);
|
|
963
|
+
this.setClearStrategy(new ClearButtonStrategy(this.getFullCssSelector(), this.driver));
|
|
964
|
+
}
|
|
965
|
+
async setTagBoxInputValue(values) {
|
|
966
|
+
const lastElement = values[values.length - 1];
|
|
967
|
+
const inputEl = await this.getInputElement();
|
|
968
|
+
await inputEl.click();
|
|
969
|
+
for (const value of values) {
|
|
970
|
+
await this.selectOption(inputEl, value, lastElement);
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
async waitOptionSelection() {
|
|
974
|
+
await fixElementStaleError(import_selenium_webdriver15.By.css(TAG_BOX_LIST_ITEM_SELECTOR2), this.driver);
|
|
975
|
+
}
|
|
976
|
+
async selectOption(inputEl, value, lastElement) {
|
|
977
|
+
try {
|
|
978
|
+
await inputEl.sendKeys(value);
|
|
979
|
+
const dataTEST = await this.getDataTestId();
|
|
980
|
+
await dropDownHeaderFilterDictionaryOptionClick(value, this.driver, dataTEST);
|
|
981
|
+
const textLength = await inputEl.getAttribute("value").then((value2) => value2.length);
|
|
982
|
+
for (let i = 0; i < textLength; i++) {
|
|
983
|
+
await inputEl.sendKeys(import_selenium_webdriver15.Key.BACK_SPACE);
|
|
984
|
+
}
|
|
985
|
+
} catch (error) {
|
|
986
|
+
throw error;
|
|
987
|
+
}
|
|
988
|
+
await this.waitOptionSelection();
|
|
989
|
+
if (value !== lastElement) {
|
|
990
|
+
await inputEl.clear();
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
async getHeaderFilterDictionaryInputValue() {
|
|
994
|
+
if (await this.isHeaderFilterDictionaryEmpty()) {
|
|
995
|
+
return [];
|
|
996
|
+
}
|
|
997
|
+
const tags = await this.driver.findElements(
|
|
998
|
+
import_selenium_webdriver15.By.css(`${this.getFullCssSelector()} .${DX_TAG_CONTAINER2} ${TAGS_SELECTOR2}`)
|
|
999
|
+
);
|
|
1000
|
+
const values = [];
|
|
1001
|
+
for (const tag of tags) {
|
|
1002
|
+
values.push(await tag.getAttribute("textContent"));
|
|
1003
|
+
}
|
|
1004
|
+
return values;
|
|
1005
|
+
}
|
|
1006
|
+
async isHeaderFilterDictionaryEmpty() {
|
|
1007
|
+
const classAttribute = await this.getClasses();
|
|
1008
|
+
return classAttribute.includes(DX_TEXTEDITOR_EMPTY3);
|
|
1009
|
+
}
|
|
1010
|
+
async getValue() {
|
|
1011
|
+
const value = await this.getHeaderFilterDictionaryInputValue();
|
|
1012
|
+
return value.length ? value : null;
|
|
1013
|
+
}
|
|
1014
|
+
async setValue(values) {
|
|
1015
|
+
if (!Array.isArray(values)) {
|
|
1016
|
+
values = [values];
|
|
1017
|
+
}
|
|
1018
|
+
await this.setTagBoxInputValue(values);
|
|
1019
|
+
}
|
|
1020
|
+
};
|
|
1021
|
+
}
|
|
1022
|
+
});
|
|
1023
|
+
|
|
921
1024
|
// src/pageObjects/elements/Editors/editorFactory.ts
|
|
922
1025
|
var editorFactory;
|
|
923
1026
|
var init_editorFactory = __esm({
|
|
@@ -934,6 +1037,7 @@ var init_editorFactory = __esm({
|
|
|
934
1037
|
init_BooleanSelector();
|
|
935
1038
|
init_ButtonGroup();
|
|
936
1039
|
init_DateEditor();
|
|
1040
|
+
init_HeaderFilterDictionary();
|
|
937
1041
|
editorFactory = async (parentCssSelector, elementCssSelector, driver) => {
|
|
938
1042
|
const elementInstance = new AbstractFormElement(parentCssSelector, elementCssSelector, driver);
|
|
939
1043
|
const classSting = await elementInstance.getClasses();
|
|
@@ -956,6 +1060,8 @@ var init_editorFactory = __esm({
|
|
|
956
1060
|
return new BooleanSelector(parentCssSelector, elementCssSelector, driver);
|
|
957
1061
|
if (classSting.includes("button-group-field" /* ButtonGroup */))
|
|
958
1062
|
return new ButtonGroup(parentCssSelector, elementCssSelector, driver);
|
|
1063
|
+
if (classSting.includes("header-filter-dictionary" /* HeaderFilterDictionary */))
|
|
1064
|
+
return new HeaderFilterDictionary(parentCssSelector, elementCssSelector, driver);
|
|
959
1065
|
throw new Error("Unknown type of editor. Please write ticket to the support");
|
|
960
1066
|
};
|
|
961
1067
|
}
|
|
@@ -1063,12 +1169,12 @@ var init_AbstractButton = __esm({
|
|
|
1063
1169
|
});
|
|
1064
1170
|
|
|
1065
1171
|
// src/pageObjects/elements/DXComponents/DXButton.ts
|
|
1066
|
-
var
|
|
1172
|
+
var import_selenium_webdriver17, DXButton;
|
|
1067
1173
|
var init_DXButton = __esm({
|
|
1068
1174
|
"src/pageObjects/elements/DXComponents/DXButton.ts"() {
|
|
1069
1175
|
"use strict";
|
|
1070
1176
|
init_AbstractButton();
|
|
1071
|
-
|
|
1177
|
+
import_selenium_webdriver17 = require("selenium-webdriver");
|
|
1072
1178
|
DXButton = class extends AbstractButton {
|
|
1073
1179
|
async getText() {
|
|
1074
1180
|
const classes = await this.getClasses();
|
|
@@ -1076,7 +1182,7 @@ var init_DXButton = __esm({
|
|
|
1076
1182
|
return null;
|
|
1077
1183
|
}
|
|
1078
1184
|
const el = await this.getElement();
|
|
1079
|
-
const textEl = el.findElement(
|
|
1185
|
+
const textEl = el.findElement(import_selenium_webdriver17.By.className("dx-button-text"));
|
|
1080
1186
|
return await textEl.getText();
|
|
1081
1187
|
}
|
|
1082
1188
|
};
|
|
@@ -1131,12 +1237,12 @@ var init_Panel = __esm({
|
|
|
1131
1237
|
});
|
|
1132
1238
|
|
|
1133
1239
|
// src/pageObjects/elements/Groups/TabPanel.ts
|
|
1134
|
-
var
|
|
1240
|
+
var import_selenium_webdriver18, TabPanelItem, TabPanel;
|
|
1135
1241
|
var init_TabPanel = __esm({
|
|
1136
1242
|
"src/pageObjects/elements/Groups/TabPanel.ts"() {
|
|
1137
1243
|
"use strict";
|
|
1138
1244
|
init_AbstractGroup();
|
|
1139
|
-
|
|
1245
|
+
import_selenium_webdriver18 = require("selenium-webdriver");
|
|
1140
1246
|
init_actions();
|
|
1141
1247
|
TabPanelItem = class extends AbstractGroup {
|
|
1142
1248
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -1147,7 +1253,7 @@ var init_TabPanel = __esm({
|
|
|
1147
1253
|
}
|
|
1148
1254
|
async isActive() {
|
|
1149
1255
|
const tabPanelItemElement = await this.getElement();
|
|
1150
|
-
const grandparentTab = await tabPanelItemElement.findElement(
|
|
1256
|
+
const grandparentTab = await tabPanelItemElement.findElement(import_selenium_webdriver18.By.xpath('ancestor::div[@role="tab"][1]'));
|
|
1151
1257
|
return await grandparentTab.getAttribute("aria-selected") === "true";
|
|
1152
1258
|
}
|
|
1153
1259
|
async getTitle() {
|
|
@@ -1166,12 +1272,12 @@ var init_TabPanel = __esm({
|
|
|
1166
1272
|
});
|
|
1167
1273
|
|
|
1168
1274
|
// src/pageObjects/elements/Groups/Accordion/AccordionItem.ts
|
|
1169
|
-
var
|
|
1275
|
+
var import_selenium_webdriver19, ACCORDION_TITLE_CONTAINER, AccordionItem;
|
|
1170
1276
|
var init_AccordionItem = __esm({
|
|
1171
1277
|
"src/pageObjects/elements/Groups/Accordion/AccordionItem.ts"() {
|
|
1172
1278
|
"use strict";
|
|
1173
1279
|
init_AbstractGroup();
|
|
1174
|
-
|
|
1280
|
+
import_selenium_webdriver19 = require("selenium-webdriver");
|
|
1175
1281
|
init_actions();
|
|
1176
1282
|
ACCORDION_TITLE_CONTAINER = "accordion-title-container";
|
|
1177
1283
|
AccordionItem = class extends AbstractGroup {
|
|
@@ -1184,7 +1290,7 @@ var init_AccordionItem = __esm({
|
|
|
1184
1290
|
}
|
|
1185
1291
|
async clickAccordionItemTitle() {
|
|
1186
1292
|
const accordionElement = await this.getElement();
|
|
1187
|
-
const accordTitleElement = await accordionElement.findElement(
|
|
1293
|
+
const accordTitleElement = await accordionElement.findElement(import_selenium_webdriver19.By.className(ACCORDION_TITLE_CONTAINER));
|
|
1188
1294
|
await accordTitleElement.click();
|
|
1189
1295
|
}
|
|
1190
1296
|
async click() {
|
|
@@ -1419,11 +1525,11 @@ function getCssRowByIndexSelector(index) {
|
|
|
1419
1525
|
function getCssCellByIndexSelector(index) {
|
|
1420
1526
|
return `td[role="gridcell"][aria-colindex="${transformInputIndex(index)}"]`;
|
|
1421
1527
|
}
|
|
1422
|
-
var
|
|
1528
|
+
var import_selenium_webdriver20, getColumnByIndexCssSelector, getColumnByCaptionCssSelector, getColumnByNameCssSelector, transformInputIndex, transformOutputIndex;
|
|
1423
1529
|
var init_utils2 = __esm({
|
|
1424
1530
|
"src/pageObjects/elements/Table/utils.ts"() {
|
|
1425
1531
|
"use strict";
|
|
1426
|
-
|
|
1532
|
+
import_selenium_webdriver20 = require("selenium-webdriver");
|
|
1427
1533
|
getColumnByIndexCssSelector = (columnIndex) => `td[aria-colindex="${transformInputIndex(columnIndex)}"]`;
|
|
1428
1534
|
getColumnByCaptionCssSelector = (caption) => `td[role="columnheader"][aria-label="Column ${caption}"]`;
|
|
1429
1535
|
getColumnByNameCssSelector = (name) => `td[role="columnheader"][data-fieldname="${name}"]`;
|
|
@@ -1440,11 +1546,11 @@ var init_types3 = __esm({
|
|
|
1440
1546
|
});
|
|
1441
1547
|
|
|
1442
1548
|
// src/pageObjects/elements/Table/elements/Cell.ts
|
|
1443
|
-
var
|
|
1549
|
+
var import_selenium_webdriver21, Cell;
|
|
1444
1550
|
var init_Cell = __esm({
|
|
1445
1551
|
"src/pageObjects/elements/Table/elements/Cell.ts"() {
|
|
1446
1552
|
"use strict";
|
|
1447
|
-
|
|
1553
|
+
import_selenium_webdriver21 = require("selenium-webdriver");
|
|
1448
1554
|
init_AbstractElementWithParent();
|
|
1449
1555
|
init_utils2();
|
|
1450
1556
|
init_types3();
|
|
@@ -1461,12 +1567,12 @@ var init_Cell = __esm({
|
|
|
1461
1567
|
this.elementCssSelector = getCssCellByIndexSelector(index);
|
|
1462
1568
|
}
|
|
1463
1569
|
async getBooleanValue(cellEl) {
|
|
1464
|
-
const booleanEl = await cellEl.findElement(
|
|
1570
|
+
const booleanEl = await cellEl.findElement(import_selenium_webdriver21.By.className("boolean-widget"));
|
|
1465
1571
|
return await booleanEl.getAttribute("aria-checked") === "true" ? 1 : 0;
|
|
1466
1572
|
}
|
|
1467
1573
|
async getTagsValue(cellEl) {
|
|
1468
1574
|
const tagsCssSelector = ".multiselect-container .multiselect-cell";
|
|
1469
|
-
const tags = await cellEl.findElements(
|
|
1575
|
+
const tags = await cellEl.findElements(import_selenium_webdriver21.By.css(tagsCssSelector));
|
|
1470
1576
|
const values = [];
|
|
1471
1577
|
for (const tag of tags) {
|
|
1472
1578
|
values.push(await tag.getAttribute("textContent"));
|
|
@@ -1496,11 +1602,11 @@ var init_Cell = __esm({
|
|
|
1496
1602
|
});
|
|
1497
1603
|
|
|
1498
1604
|
// src/pageObjects/elements/Table/elements/Row.ts
|
|
1499
|
-
var
|
|
1605
|
+
var import_selenium_webdriver22, DX_SELECTION_CLASS, DX_ROW_EDIT_CLASS, DX_DATA_ROW_CLASS, Row;
|
|
1500
1606
|
var init_Row = __esm({
|
|
1501
1607
|
"src/pageObjects/elements/Table/elements/Row.ts"() {
|
|
1502
1608
|
"use strict";
|
|
1503
|
-
|
|
1609
|
+
import_selenium_webdriver22 = require("selenium-webdriver");
|
|
1504
1610
|
init_Cell();
|
|
1505
1611
|
init_utils2();
|
|
1506
1612
|
init_AbstractElementWithParent();
|
|
@@ -1559,7 +1665,7 @@ var init_Row = __esm({
|
|
|
1559
1665
|
return this.index;
|
|
1560
1666
|
}
|
|
1561
1667
|
async getCells() {
|
|
1562
|
-
const cells = await this.driver.findElements(
|
|
1668
|
+
const cells = await this.driver.findElements(import_selenium_webdriver22.By.css(`${this.getFullCssSelector()} td[role="gridcell"]`));
|
|
1563
1669
|
const result = [];
|
|
1564
1670
|
cells.forEach((_, index) => {
|
|
1565
1671
|
const newCell = this.getCellByIndex(index);
|
|
@@ -1572,7 +1678,7 @@ var init_Row = __esm({
|
|
|
1572
1678
|
this.index
|
|
1573
1679
|
)}"] .${buttonClass}`;
|
|
1574
1680
|
const button = await fixElementStaleError(
|
|
1575
|
-
|
|
1681
|
+
import_selenium_webdriver22.By.css(`${this.parentCssSelector} ${this.fixedTableContentCssSelector} ${buttonCssSelector}`),
|
|
1576
1682
|
this.driver
|
|
1577
1683
|
);
|
|
1578
1684
|
return click(button, this.driver);
|
|
@@ -1603,11 +1709,11 @@ var init_Row = __esm({
|
|
|
1603
1709
|
});
|
|
1604
1710
|
|
|
1605
1711
|
// src/pageObjects/elements/Table/elements/Column.ts
|
|
1606
|
-
var
|
|
1712
|
+
var import_selenium_webdriver23, Column;
|
|
1607
1713
|
var init_Column = __esm({
|
|
1608
1714
|
"src/pageObjects/elements/Table/elements/Column.ts"() {
|
|
1609
1715
|
"use strict";
|
|
1610
|
-
|
|
1716
|
+
import_selenium_webdriver23 = require("selenium-webdriver");
|
|
1611
1717
|
init_utils2();
|
|
1612
1718
|
init_AbstractElementWithParent();
|
|
1613
1719
|
init_fixElementStaleError();
|
|
@@ -1635,7 +1741,7 @@ var init_Column = __esm({
|
|
|
1635
1741
|
return super.getElement();
|
|
1636
1742
|
}
|
|
1637
1743
|
async getColumnHeaderIndexBy(cssSelector) {
|
|
1638
|
-
const column = await fixElementStaleError(
|
|
1744
|
+
const column = await fixElementStaleError(import_selenium_webdriver23.By.css(`${this.parentCssSelector} ${this.headerCssSelector} ${cssSelector}`), this.driver);
|
|
1639
1745
|
return transformOutputIndex(await column.getAttribute("aria-colindex"));
|
|
1640
1746
|
}
|
|
1641
1747
|
async getIndexByCaption() {
|
|
@@ -1801,11 +1907,11 @@ var init_FormField = __esm({
|
|
|
1801
1907
|
});
|
|
1802
1908
|
|
|
1803
1909
|
// src/pageObjects/elements/Table/Table.ts
|
|
1804
|
-
var
|
|
1910
|
+
var import_selenium_webdriver24, Table;
|
|
1805
1911
|
var init_Table = __esm({
|
|
1806
1912
|
"src/pageObjects/elements/Table/Table.ts"() {
|
|
1807
1913
|
"use strict";
|
|
1808
|
-
|
|
1914
|
+
import_selenium_webdriver24 = require("selenium-webdriver");
|
|
1809
1915
|
init_createDataTestId();
|
|
1810
1916
|
init_AbstractElementWithParent();
|
|
1811
1917
|
init_Row();
|
|
@@ -1857,7 +1963,7 @@ var init_Table = __esm({
|
|
|
1857
1963
|
return this.getRowByIndex(index).select();
|
|
1858
1964
|
}
|
|
1859
1965
|
async getRows() {
|
|
1860
|
-
const rows = await this.driver.findElements(
|
|
1966
|
+
const rows = await this.driver.findElements(import_selenium_webdriver24.By.css(`${this.getFullCssSelector()} .dx-row.dx-data-row`));
|
|
1861
1967
|
const result = [];
|
|
1862
1968
|
rows.forEach((_, index) => {
|
|
1863
1969
|
const newRow = new Row(
|
|
@@ -1873,7 +1979,7 @@ var init_Table = __esm({
|
|
|
1873
1979
|
}
|
|
1874
1980
|
async getColumns() {
|
|
1875
1981
|
const columns = await this.driver.findElements(
|
|
1876
|
-
|
|
1982
|
+
import_selenium_webdriver24.By.css(`${this.getFullCssSelector()} ${this.headerCssSelector} td[role="columnheader"]`)
|
|
1877
1983
|
);
|
|
1878
1984
|
const result = [];
|
|
1879
1985
|
columns.forEach((_, index) => {
|
|
@@ -1968,11 +2074,11 @@ var init_typesUtil = __esm({
|
|
|
1968
2074
|
});
|
|
1969
2075
|
|
|
1970
2076
|
// src/pageObjects/elements/TableToolbar/ToolbarMenu.ts
|
|
1971
|
-
var
|
|
2077
|
+
var import_selenium_webdriver25, SPINDOWN_CLASS, buttonGroupItemSelector, getFullCssSelector, buttonByTextXpath, ToolbarMenu;
|
|
1972
2078
|
var init_ToolbarMenu = __esm({
|
|
1973
2079
|
"src/pageObjects/elements/TableToolbar/ToolbarMenu.ts"() {
|
|
1974
2080
|
"use strict";
|
|
1975
|
-
|
|
2081
|
+
import_selenium_webdriver25 = require("selenium-webdriver");
|
|
1976
2082
|
init_typesUtil();
|
|
1977
2083
|
init_AbstractElementWithParent();
|
|
1978
2084
|
init_locators();
|
|
@@ -2023,7 +2129,7 @@ var init_ToolbarMenu = __esm({
|
|
|
2023
2129
|
throw new Error(`"title" must be a string or array of string`);
|
|
2024
2130
|
let lTitle = isString(title) ? [title] : title;
|
|
2025
2131
|
for (let t of lTitle) {
|
|
2026
|
-
await this.goToButton(t,
|
|
2132
|
+
await this.goToButton(t, import_selenium_webdriver25.By.xpath(buttonByTextXpath(t)));
|
|
2027
2133
|
}
|
|
2028
2134
|
}
|
|
2029
2135
|
};
|
|
@@ -2098,11 +2204,11 @@ var init_FormToolbar = __esm({
|
|
|
2098
2204
|
});
|
|
2099
2205
|
|
|
2100
2206
|
// src/pageObjects/elements/Filters/FilterOperation.ts
|
|
2101
|
-
var
|
|
2207
|
+
var import_selenium_webdriver26, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
|
|
2102
2208
|
var init_FilterOperation = __esm({
|
|
2103
2209
|
"src/pageObjects/elements/Filters/FilterOperation.ts"() {
|
|
2104
2210
|
"use strict";
|
|
2105
|
-
|
|
2211
|
+
import_selenium_webdriver26 = require("selenium-webdriver");
|
|
2106
2212
|
init_fixElementStaleError();
|
|
2107
2213
|
init_AbstractElementWithParent();
|
|
2108
2214
|
init_locators();
|
|
@@ -2142,10 +2248,10 @@ var init_FilterOperation = __esm({
|
|
|
2142
2248
|
errorMessage: "Widget operation is not clickable",
|
|
2143
2249
|
driver: this.driver
|
|
2144
2250
|
});
|
|
2145
|
-
const clickableElement = await widgetButtonEl.findElement(
|
|
2251
|
+
const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver26.By.className("dx-icon"));
|
|
2146
2252
|
await click(clickableElement, this.driver);
|
|
2147
2253
|
try {
|
|
2148
|
-
const widgetPopupEl = await this.driver.findElement(
|
|
2254
|
+
const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver26.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
|
|
2149
2255
|
await waitElementIsVisible({
|
|
2150
2256
|
element: widgetPopupEl,
|
|
2151
2257
|
errorMessage: `Operation widget popup is not visible`,
|
|
@@ -2160,7 +2266,7 @@ var init_FilterOperation = __esm({
|
|
|
2160
2266
|
throw new Error(`Operation with name "${operationName}" is not correct.`);
|
|
2161
2267
|
}
|
|
2162
2268
|
await this.initOperationWidget();
|
|
2163
|
-
const operationEl = await fixElementStaleError(
|
|
2269
|
+
const operationEl = await fixElementStaleError(import_selenium_webdriver26.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
|
|
2164
2270
|
await click(operationEl, this.driver);
|
|
2165
2271
|
await wait(
|
|
2166
2272
|
async () => {
|
|
@@ -2402,11 +2508,11 @@ var init_PanelFilterField = __esm({
|
|
|
2402
2508
|
});
|
|
2403
2509
|
|
|
2404
2510
|
// src/pageObjects/elements/Filters/FilterPanel.ts
|
|
2405
|
-
var
|
|
2511
|
+
var import_selenium_webdriver27, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
|
|
2406
2512
|
var init_FilterPanel = __esm({
|
|
2407
2513
|
"src/pageObjects/elements/Filters/FilterPanel.ts"() {
|
|
2408
2514
|
"use strict";
|
|
2409
|
-
|
|
2515
|
+
import_selenium_webdriver27 = require("selenium-webdriver");
|
|
2410
2516
|
init_AbstractElement();
|
|
2411
2517
|
init_PanelFilterField();
|
|
2412
2518
|
init_actions();
|
|
@@ -2421,7 +2527,7 @@ var init_FilterPanel = __esm({
|
|
|
2421
2527
|
async filterPanelButtons() {
|
|
2422
2528
|
const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
|
|
2423
2529
|
const el = await this.getElement();
|
|
2424
|
-
return el.findElements(
|
|
2530
|
+
return el.findElements(import_selenium_webdriver27.By.css(selector));
|
|
2425
2531
|
}
|
|
2426
2532
|
constructor(formName, driver) {
|
|
2427
2533
|
super(driver, drawerSelector(formName));
|
|
@@ -2454,7 +2560,7 @@ var init_FilterPanel = __esm({
|
|
|
2454
2560
|
await this.driver.sleep(300);
|
|
2455
2561
|
}
|
|
2456
2562
|
async close() {
|
|
2457
|
-
const btn = await this.driver.findElement(
|
|
2563
|
+
const btn = await this.driver.findElement(import_selenium_webdriver27.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
|
|
2458
2564
|
await click(btn, this.driver);
|
|
2459
2565
|
}
|
|
2460
2566
|
};
|
|
@@ -2490,12 +2596,12 @@ var init_HeaderFilterField = __esm({
|
|
|
2490
2596
|
});
|
|
2491
2597
|
|
|
2492
2598
|
// src/pageObjects/elements/Filters/ColumnFilter.ts
|
|
2493
|
-
var
|
|
2599
|
+
var import_selenium_webdriver28, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
|
|
2494
2600
|
var init_ColumnFilter = __esm({
|
|
2495
2601
|
"src/pageObjects/elements/Filters/ColumnFilter.ts"() {
|
|
2496
2602
|
"use strict";
|
|
2497
2603
|
init_actions();
|
|
2498
|
-
|
|
2604
|
+
import_selenium_webdriver28 = require("selenium-webdriver");
|
|
2499
2605
|
init_HeaderFilterField();
|
|
2500
2606
|
init_waitElementIsVisible();
|
|
2501
2607
|
init_AbstractElement();
|
|
@@ -2520,11 +2626,11 @@ var init_ColumnFilter = __esm({
|
|
|
2520
2626
|
}
|
|
2521
2627
|
async getApplyButton() {
|
|
2522
2628
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
|
|
2523
|
-
return this.driver.findElement(
|
|
2629
|
+
return this.driver.findElement(import_selenium_webdriver28.By.css(selector));
|
|
2524
2630
|
}
|
|
2525
2631
|
async getCancelButton() {
|
|
2526
2632
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
|
|
2527
|
-
return this.driver.findElement(
|
|
2633
|
+
return this.driver.findElement(import_selenium_webdriver28.By.css(selector));
|
|
2528
2634
|
}
|
|
2529
2635
|
async apply() {
|
|
2530
2636
|
const btn = await this.getApplyButton();
|
|
@@ -2538,7 +2644,7 @@ var init_ColumnFilter = __esm({
|
|
|
2538
2644
|
const columnEl = await this._column.getElement();
|
|
2539
2645
|
const actions = this.driver.actions({ async: true });
|
|
2540
2646
|
await actions.move({ origin: columnEl }).perform();
|
|
2541
|
-
const elements = await columnEl.findElements(
|
|
2647
|
+
const elements = await columnEl.findElements(import_selenium_webdriver28.By.css(HEADER_FILTER_ICON));
|
|
2542
2648
|
let headerFilterIcon = null;
|
|
2543
2649
|
await wait(
|
|
2544
2650
|
async () => {
|
|
@@ -2783,12 +2889,12 @@ var init_createSubFormInstance = __esm({
|
|
|
2783
2889
|
});
|
|
2784
2890
|
|
|
2785
2891
|
// src/pageObjects/elements/Forms/Form.ts
|
|
2786
|
-
var
|
|
2892
|
+
var import_selenium_webdriver29, formTestId, Form;
|
|
2787
2893
|
var init_Form = __esm({
|
|
2788
2894
|
"src/pageObjects/elements/Forms/Form.ts"() {
|
|
2789
2895
|
"use strict";
|
|
2790
2896
|
init_locators();
|
|
2791
|
-
|
|
2897
|
+
import_selenium_webdriver29 = require("selenium-webdriver");
|
|
2792
2898
|
init_AbstractForm();
|
|
2793
2899
|
init_waitElementIsVisible();
|
|
2794
2900
|
init_createSubFormInstance();
|
|
@@ -2813,10 +2919,10 @@ var init_Form = __esm({
|
|
|
2813
2919
|
*/
|
|
2814
2920
|
async getTitleText() {
|
|
2815
2921
|
if (await this.isModal()) {
|
|
2816
|
-
const titleEl2 = await this.driver.findElement(
|
|
2922
|
+
const titleEl2 = await this.driver.findElement(import_selenium_webdriver29.By.css(`${this.popupContainerCssSelector} .popup-title`));
|
|
2817
2923
|
return titleEl2.getText();
|
|
2818
2924
|
}
|
|
2819
|
-
let titleEl = await this.driver.findElement(
|
|
2925
|
+
let titleEl = await this.driver.findElement(import_selenium_webdriver29.By.className("main-toolbar-form-title"));
|
|
2820
2926
|
return titleEl.getText();
|
|
2821
2927
|
}
|
|
2822
2928
|
setSubFormMode() {
|
|
@@ -2834,7 +2940,7 @@ var init_Form = __esm({
|
|
|
2834
2940
|
*/
|
|
2835
2941
|
async subForm(name) {
|
|
2836
2942
|
const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name));
|
|
2837
|
-
const byCssSelector =
|
|
2943
|
+
const byCssSelector = import_selenium_webdriver29.By.css(cssSelector);
|
|
2838
2944
|
const subFormEl = await this.driver.findElement(byCssSelector);
|
|
2839
2945
|
await waitElementIsVisible({
|
|
2840
2946
|
element: subFormEl,
|
|
@@ -2864,18 +2970,18 @@ var FormEdit_exports = {};
|
|
|
2864
2970
|
__export(FormEdit_exports, {
|
|
2865
2971
|
default: () => FormEdit
|
|
2866
2972
|
});
|
|
2867
|
-
var
|
|
2973
|
+
var import_selenium_webdriver30, FormEdit;
|
|
2868
2974
|
var init_FormEdit = __esm({
|
|
2869
2975
|
"src/pageObjects/elements/Forms/FormEdit.ts"() {
|
|
2870
2976
|
"use strict";
|
|
2871
2977
|
init_Form();
|
|
2872
|
-
|
|
2978
|
+
import_selenium_webdriver30 = require("selenium-webdriver");
|
|
2873
2979
|
init_FormField();
|
|
2874
2980
|
init_actions();
|
|
2875
2981
|
init_wait();
|
|
2876
2982
|
FormEdit = class extends Form {
|
|
2877
|
-
saveButtonBy =
|
|
2878
|
-
closeButtonBy =
|
|
2983
|
+
saveButtonBy = import_selenium_webdriver30.By.id("button-save");
|
|
2984
|
+
closeButtonBy = import_selenium_webdriver30.By.id("button-cancel");
|
|
2879
2985
|
constructor(driver) {
|
|
2880
2986
|
super(driver);
|
|
2881
2987
|
this.popupContainerCssSelector = `.popup .form-edit-${this.formName}`;
|
|
@@ -3058,7 +3164,7 @@ var SubsystemsPanelHeader = class extends AbstractElementWithParent {
|
|
|
3058
3164
|
};
|
|
3059
3165
|
|
|
3060
3166
|
// src/pageObjects/elements/SubsystemsPanel/SubsystemsPanel.ts
|
|
3061
|
-
var
|
|
3167
|
+
var import_selenium_webdriver16 = require("selenium-webdriver");
|
|
3062
3168
|
init_wait();
|
|
3063
3169
|
init_locators();
|
|
3064
3170
|
init_Editors();
|
|
@@ -3140,7 +3246,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3140
3246
|
*/
|
|
3141
3247
|
async searchClear() {
|
|
3142
3248
|
const clearBtnSelector = `#aside ${byTestIdCssSelector(SEARCH_INPUT_SELECTOR)} .${DX_CLEAR_BUTTON_AREA}`;
|
|
3143
|
-
const clearBtn = await this.driver.findElement(
|
|
3249
|
+
const clearBtn = await this.driver.findElement(import_selenium_webdriver16.By.css(clearBtnSelector));
|
|
3144
3250
|
if (await clearBtn.isDisplayed()) {
|
|
3145
3251
|
await click(clearBtn, this.driver);
|
|
3146
3252
|
}
|
|
@@ -3154,7 +3260,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3154
3260
|
*/
|
|
3155
3261
|
item(name) {
|
|
3156
3262
|
const elementCSS = createSubSystemTestId(name);
|
|
3157
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
3263
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver16.By.css(`${byTestIdCssSelector(elementCSS, "span")}`) });
|
|
3158
3264
|
}
|
|
3159
3265
|
/**
|
|
3160
3266
|
* Возвращает сабсистему по заголовку
|
|
@@ -3164,7 +3270,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3164
3270
|
* const subsystem = subsystemsPanel.itemByTitle('SubSystemTitle');
|
|
3165
3271
|
*/
|
|
3166
3272
|
itemByTitle(title) {
|
|
3167
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
3273
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver16.By.css(byTitleCssSelector(title)) });
|
|
3168
3274
|
}
|
|
3169
3275
|
/**
|
|
3170
3276
|
* Возвращается на уровень выше по сабсистемам
|
|
@@ -3174,7 +3280,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3174
3280
|
* wait subsystemsPanel.back();
|
|
3175
3281
|
*/
|
|
3176
3282
|
async back() {
|
|
3177
|
-
const backButton = this.driver.findElement(
|
|
3283
|
+
const backButton = this.driver.findElement(import_selenium_webdriver16.By.css(`#aside .${BACK_BUTTON_SELECTOR}`));
|
|
3178
3284
|
await waitElementIsVisible(
|
|
3179
3285
|
{
|
|
3180
3286
|
element: backButton,
|
|
@@ -3191,13 +3297,13 @@ init_ListForm();
|
|
|
3191
3297
|
init_TreeView();
|
|
3192
3298
|
|
|
3193
3299
|
// src/pageObjects/elements/Forms/ReportForm.ts
|
|
3194
|
-
var
|
|
3300
|
+
var import_selenium_webdriver31 = require("selenium-webdriver");
|
|
3195
3301
|
init_FormEdit();
|
|
3196
3302
|
var ReportForm = class extends FormEdit {
|
|
3197
3303
|
constructor(driver) {
|
|
3198
3304
|
super(driver);
|
|
3199
3305
|
this.popupContainerCssSelector = `.popup .form-report-${this.formName}`;
|
|
3200
|
-
this.saveButtonBy =
|
|
3306
|
+
this.saveButtonBy = import_selenium_webdriver31.By.id("button-apply");
|
|
3201
3307
|
}
|
|
3202
3308
|
/**
|
|
3203
3309
|
* Знаходить поле/фільтр у формі репорту за ім'ям
|
|
@@ -3220,7 +3326,7 @@ init_FilterPanel();
|
|
|
3220
3326
|
|
|
3221
3327
|
// src/pageObjects/elements/Dialog.ts
|
|
3222
3328
|
init_AbstractElement();
|
|
3223
|
-
var
|
|
3329
|
+
var import_selenium_webdriver32 = require("selenium-webdriver");
|
|
3224
3330
|
init_AbstractButton();
|
|
3225
3331
|
var DIALOG_CLASS = ".d5-dialog";
|
|
3226
3332
|
var DIALOG_TITLE_CLASS = ".dialog__title";
|
|
@@ -3235,7 +3341,7 @@ var DialogButton = class extends AbstractButton {
|
|
|
3235
3341
|
}
|
|
3236
3342
|
async getElement() {
|
|
3237
3343
|
const panel = await super.getElement();
|
|
3238
|
-
return panel.findElement(
|
|
3344
|
+
return panel.findElement(import_selenium_webdriver32.By.xpath(buttonByTextXpath2(this.text)));
|
|
3239
3345
|
}
|
|
3240
3346
|
buttonNotDisplayedError() {
|
|
3241
3347
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
@@ -3255,11 +3361,11 @@ var Dialog = class extends AbstractElement {
|
|
|
3255
3361
|
return this.joinRelativeCssSelectors([DIALOG_CLASS, DIALOG_BUTTONS_PANEL_CLASS]);
|
|
3256
3362
|
}
|
|
3257
3363
|
async title() {
|
|
3258
|
-
const el = await this.driver.findElement(
|
|
3364
|
+
const el = await this.driver.findElement(import_selenium_webdriver32.By.css(this.titleSelector));
|
|
3259
3365
|
return await el.getText();
|
|
3260
3366
|
}
|
|
3261
3367
|
async text() {
|
|
3262
|
-
const el = await this.driver.findElement(
|
|
3368
|
+
const el = await this.driver.findElement(import_selenium_webdriver32.By.css(this.textSelector));
|
|
3263
3369
|
return await el.getText();
|
|
3264
3370
|
}
|
|
3265
3371
|
button(text) {
|
|
@@ -138,7 +138,8 @@ declare enum ControlClass {
|
|
|
138
138
|
Date = "date-control",
|
|
139
139
|
SingleDateRange = "single-date-range-control",
|
|
140
140
|
BooleanSelector = "buttons-group",
|
|
141
|
-
ButtonGroup = "button-group-field"
|
|
141
|
+
ButtonGroup = "button-group-field",
|
|
142
|
+
HeaderFilterDictionary = "header-filter-dictionary"
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
interface ClearStrategy {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-E4DNUJAB.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-35I6E2YD.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-AHJAA7VV.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
readonlyLocator,
|
|
31
31
|
wait,
|
|
32
32
|
waitElementIsVisible
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-NWVB4S3G.mjs";
|
|
34
34
|
|
|
35
35
|
// src/pageObjects/pages/LoginPage.ts
|
|
36
36
|
var LOGIN_PATH = "/login";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-E4DNUJAB.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-35I6E2YD.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-AHJAA7VV.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
readonlyLocator,
|
|
31
31
|
wait,
|
|
32
32
|
waitElementIsVisible
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-NWVB4S3G.mjs";
|
|
34
34
|
|
|
35
35
|
// src/pageObjects/pages/LoginPage.ts
|
|
36
36
|
var LOGIN_PATH = "/login";
|
package/package.json
CHANGED