d5-testing-library 1.9.0-alpha.21 → 1.9.0-alpha.22
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-V2BBOANS.mjs +7 -0
- package/dist/ListForm-UBIG4ZP2.mjs +7 -0
- package/dist/TreeView-MIKFUI4Q.mjs +8 -0
- package/dist/{chunk-ATHAW2ZF.mjs → chunk-27XBX275.mjs} +1 -1
- package/dist/{chunk-NO3PBR34.mjs → chunk-FRCMUAAY.mjs} +250 -39
- package/dist/{chunk-6TK257AJ.mjs → chunk-GQKGCUVL.mjs} +1 -1
- package/dist/{chunk-I5A2CSDF.mjs → chunk-ZWHGIJ3K.mjs} +1 -1
- package/dist/cjs/d5-testing-library.cjs +336 -108
- package/dist/cjs/d5-testing-library.d.ts +1 -0
- package/dist/d5-testing-library.d.mts +1 -0
- 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-WMDPDBSI.mjs +0 -7
- package/dist/ListForm-AXEPFADV.mjs +0 -7
- package/dist/TreeView-PNY6V55D.mjs +0 -8
|
@@ -132,6 +132,9 @@ var init_AbstractElement = __esm({
|
|
|
132
132
|
async getDataTestId() {
|
|
133
133
|
return await this.getAttribute("data-testid");
|
|
134
134
|
}
|
|
135
|
+
async getDataDateMode() {
|
|
136
|
+
return await this.getAttribute("data-datemode");
|
|
137
|
+
}
|
|
135
138
|
};
|
|
136
139
|
}
|
|
137
140
|
});
|
|
@@ -781,7 +784,7 @@ var init_BooleanSelector = __esm({
|
|
|
781
784
|
});
|
|
782
785
|
|
|
783
786
|
// src/pageObjects/elements/Editors/Date/utils.ts
|
|
784
|
-
var formatDMYDate, formatToDateTime;
|
|
787
|
+
var formatDMYDate, formatToDateTime, getYearMonthDay;
|
|
785
788
|
var init_utils = __esm({
|
|
786
789
|
"src/pageObjects/elements/Editors/Date/utils.ts"() {
|
|
787
790
|
"use strict";
|
|
@@ -800,16 +803,38 @@ var init_utils = __esm({
|
|
|
800
803
|
const [hours, minutes] = timePart.split(":").map(Number);
|
|
801
804
|
return new Date(year, month - 1, day, hours, minutes, 0, 0);
|
|
802
805
|
};
|
|
806
|
+
getYearMonthDay = (date) => {
|
|
807
|
+
const [year, month, day] = date.toISOString().split("T")[0].split("-");
|
|
808
|
+
return { year: +year, month: +month, day: +day };
|
|
809
|
+
};
|
|
803
810
|
}
|
|
804
811
|
});
|
|
805
812
|
|
|
806
|
-
// src/pageObjects/elements/Editors/Date/
|
|
807
|
-
var
|
|
808
|
-
var
|
|
809
|
-
"src/pageObjects/elements/Editors/Date/
|
|
813
|
+
// src/pageObjects/elements/Editors/Date/DateSelectMode.ts
|
|
814
|
+
var DateSelectMode;
|
|
815
|
+
var init_DateSelectMode = __esm({
|
|
816
|
+
"src/pageObjects/elements/Editors/Date/DateSelectMode.ts"() {
|
|
810
817
|
"use strict";
|
|
811
|
-
|
|
812
|
-
|
|
818
|
+
DateSelectMode = class {
|
|
819
|
+
static isWeek(t) {
|
|
820
|
+
return t === "week" /* Week */;
|
|
821
|
+
}
|
|
822
|
+
static isMonth(t) {
|
|
823
|
+
return t === "month" /* Month */;
|
|
824
|
+
}
|
|
825
|
+
static isWeekOrMonth(t) {
|
|
826
|
+
return this.isWeek(t) || this.isMonth(t);
|
|
827
|
+
}
|
|
828
|
+
};
|
|
829
|
+
}
|
|
830
|
+
});
|
|
831
|
+
|
|
832
|
+
// src/pageObjects/elements/Editors/Date/Calendar.ts
|
|
833
|
+
var import_selenium_webdriver12, BTN_CALENDAR_POPOVER_OPEN_SELECTOR, BTN_CALENDAR_POPOVER_DATE_FROM_INPUT_SELECTOR, BTN_CALENDAR_POPOVER_DATE_TO_INPUT_SELECTOR, BTN_SAVE_SELECTOR, CALENDAR_CAPTION_SELECTOR, CALENDAR_CELL_SELECTOR, CALENDAR_PREVIOUS_SELECTOR, CALENDAR_NEXT_SELECTOR, TEXT_EDITOR_SELECTOR, movesToCalendarEndForWeek, movesToCalendarEndForMonth, Calendar;
|
|
834
|
+
var init_Calendar = __esm({
|
|
835
|
+
"src/pageObjects/elements/Editors/Date/Calendar.ts"() {
|
|
836
|
+
"use strict";
|
|
837
|
+
init_AbstractElementWithParent();
|
|
813
838
|
import_selenium_webdriver12 = require("selenium-webdriver");
|
|
814
839
|
init_locators();
|
|
815
840
|
init_actions();
|
|
@@ -818,6 +843,191 @@ var init_BaseDateEditor = __esm({
|
|
|
818
843
|
BTN_CALENDAR_POPOVER_DATE_FROM_INPUT_SELECTOR = "DateRange__inputs-item--dateFrom";
|
|
819
844
|
BTN_CALENDAR_POPOVER_DATE_TO_INPUT_SELECTOR = "DateRange__inputs-item--dateTo";
|
|
820
845
|
BTN_SAVE_SELECTOR = "DateRange__button-save";
|
|
846
|
+
CALENDAR_CAPTION_SELECTOR = "dx-calendar-caption-button";
|
|
847
|
+
CALENDAR_CELL_SELECTOR = "dx-calendar-cell";
|
|
848
|
+
CALENDAR_PREVIOUS_SELECTOR = "dx-calendar-navigator-previous-month";
|
|
849
|
+
CALENDAR_NEXT_SELECTOR = "dx-calendar-navigator-next-month";
|
|
850
|
+
TEXT_EDITOR_SELECTOR = "dx-texteditor-input";
|
|
851
|
+
movesToCalendarEndForWeek = 3;
|
|
852
|
+
movesToCalendarEndForMonth = 1;
|
|
853
|
+
Calendar = class extends AbstractElementWithParent {
|
|
854
|
+
_parentCssSelector;
|
|
855
|
+
constructor({ parentCssSelector, dateFieldDataTestID, driver }) {
|
|
856
|
+
super("", byTestIdCssSelector(`${dateFieldDataTestID}-calendar-popover`), driver);
|
|
857
|
+
this._parentCssSelector = parentCssSelector;
|
|
858
|
+
}
|
|
859
|
+
async init() {
|
|
860
|
+
const dateField = await this.driver.findElement(import_selenium_webdriver12.By.css(this._parentCssSelector));
|
|
861
|
+
const button = await dateField.findElement(import_selenium_webdriver12.By.css(`.${BTN_CALENDAR_POPOVER_OPEN_SELECTOR}`));
|
|
862
|
+
await click(button, this.driver);
|
|
863
|
+
}
|
|
864
|
+
/**
|
|
865
|
+
* Переходимо на найвищий рівень календаря
|
|
866
|
+
*/
|
|
867
|
+
async moveToCalendarEnd(count) {
|
|
868
|
+
while (count >= 0) {
|
|
869
|
+
const calendarElement = await this.getElement();
|
|
870
|
+
const button = await calendarElement.findElement(import_selenium_webdriver12.By.css(`.${CALENDAR_CAPTION_SELECTOR}`));
|
|
871
|
+
await click(button, this.driver);
|
|
872
|
+
count--;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
/**
|
|
876
|
+
* Пошук та клік по правильному періоду (2010-2019, 2020-2029, і т.д.)
|
|
877
|
+
*/
|
|
878
|
+
async choosePeriodForYear(targetYear) {
|
|
879
|
+
let found = false;
|
|
880
|
+
while (!found) {
|
|
881
|
+
const calendarElement = await this.getElement();
|
|
882
|
+
const periodCells = await calendarElement.findElements(import_selenium_webdriver12.By.css(`.${CALENDAR_CELL_SELECTOR} span`));
|
|
883
|
+
for (const cell of periodCells) {
|
|
884
|
+
const text = await cell.getText();
|
|
885
|
+
if (text) {
|
|
886
|
+
const [start, end] = text.split("-").map(Number);
|
|
887
|
+
if (targetYear >= start && targetYear <= end) {
|
|
888
|
+
await click(cell, this.driver);
|
|
889
|
+
found = true;
|
|
890
|
+
break;
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
if (!found) {
|
|
895
|
+
const firstPeriod = await periodCells[0].getText();
|
|
896
|
+
const [start] = firstPeriod.split("-").map(Number);
|
|
897
|
+
if (targetYear < start) {
|
|
898
|
+
const prevBtn = await calendarElement.findElement(import_selenium_webdriver12.By.css(`.${CALENDAR_PREVIOUS_SELECTOR}`));
|
|
899
|
+
await click(prevBtn, this.driver);
|
|
900
|
+
} else {
|
|
901
|
+
const nextBtn = await calendarElement.findElement(import_selenium_webdriver12.By.css(`.${CALENDAR_NEXT_SELECTOR}`));
|
|
902
|
+
await click(nextBtn, this.driver);
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
/**
|
|
908
|
+
* Пошук та клік по конкретному року з навігацією
|
|
909
|
+
*/
|
|
910
|
+
async chooseYear(targetYear) {
|
|
911
|
+
let found = false;
|
|
912
|
+
while (!found) {
|
|
913
|
+
const calendarElement = await this.getElement();
|
|
914
|
+
const yearCells = await calendarElement.findElements(import_selenium_webdriver12.By.css(`.${CALENDAR_CELL_SELECTOR} span`));
|
|
915
|
+
for (const cell of yearCells) {
|
|
916
|
+
const text = await cell.getText();
|
|
917
|
+
const cellYear = Number(text);
|
|
918
|
+
if (!isNaN(cellYear) && cellYear === targetYear) {
|
|
919
|
+
await click(cell, this.driver);
|
|
920
|
+
found = true;
|
|
921
|
+
break;
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
if (!found) {
|
|
925
|
+
const firstYearText = await yearCells[0].getText();
|
|
926
|
+
const lastYearText = await yearCells[yearCells.length - 1].getText();
|
|
927
|
+
const firstYear = Number(firstYearText);
|
|
928
|
+
const lastYear = Number(lastYearText);
|
|
929
|
+
if (targetYear < firstYear) {
|
|
930
|
+
const prevBtn = await calendarElement.findElement(import_selenium_webdriver12.By.css(`.${CALENDAR_PREVIOUS_SELECTOR}`));
|
|
931
|
+
await click(prevBtn, this.driver);
|
|
932
|
+
} else if (targetYear > lastYear) {
|
|
933
|
+
const nextBtn = await calendarElement.findElement(import_selenium_webdriver12.By.css(`.${CALENDAR_NEXT_SELECTOR}`));
|
|
934
|
+
await click(nextBtn, this.driver);
|
|
935
|
+
} else {
|
|
936
|
+
throw new Error(`Year ${targetYear} is not in the visible range but navigation failed`);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
/**
|
|
942
|
+
* Пошук та клік по конкретному місяцю
|
|
943
|
+
*/
|
|
944
|
+
async chooseMonth(year, month) {
|
|
945
|
+
const calendarElement = await this.getElement();
|
|
946
|
+
const monthCells = await calendarElement.findElements(import_selenium_webdriver12.By.css(`.${CALENDAR_CELL_SELECTOR}`));
|
|
947
|
+
for (const cell of monthCells) {
|
|
948
|
+
const dataValue = await cell.getAttribute("data-value");
|
|
949
|
+
if (dataValue) {
|
|
950
|
+
const [cellYear, cellMonth] = dataValue.split("/").map(Number);
|
|
951
|
+
if (cellYear === year && cellMonth === month) {
|
|
952
|
+
await click(cell, this.driver);
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
throw new Error(`Month ${month} for year ${year} not found`);
|
|
958
|
+
}
|
|
959
|
+
/**
|
|
960
|
+
* Пошук та клік по конкретному дню (ігноруємо дні з іншого місяця)
|
|
961
|
+
*/
|
|
962
|
+
async chooseDay(year, month, day) {
|
|
963
|
+
const calendarElement = await this.getElement();
|
|
964
|
+
const dayCells = await calendarElement.findElements(import_selenium_webdriver12.By.css(`.${CALENDAR_CELL_SELECTOR}`));
|
|
965
|
+
for (const cell of dayCells) {
|
|
966
|
+
const dataValue = await cell.getAttribute("data-value");
|
|
967
|
+
if (dataValue) {
|
|
968
|
+
const [cellYear, cellMonth, cellDay] = dataValue.split("/").map(Number);
|
|
969
|
+
if (cellYear === year && cellMonth === month && cellDay === day) {
|
|
970
|
+
await click(cell, this.driver);
|
|
971
|
+
return;
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
throw new Error(`Day ${day}.${month}.${year} not found`);
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* Встановлення дати для тижня
|
|
979
|
+
*/
|
|
980
|
+
async setValueForWeek(date) {
|
|
981
|
+
const { year, month, day } = getYearMonthDay(date);
|
|
982
|
+
await this.moveToCalendarEnd(movesToCalendarEndForWeek);
|
|
983
|
+
await this.choosePeriodForYear(year);
|
|
984
|
+
await this.chooseYear(year);
|
|
985
|
+
await this.chooseMonth(year, month);
|
|
986
|
+
await this.chooseDay(year, month, day);
|
|
987
|
+
await this.save();
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* Встановлення дати для місяця
|
|
991
|
+
*/
|
|
992
|
+
async setValueForMonth(date) {
|
|
993
|
+
const { year, month } = getYearMonthDay(date);
|
|
994
|
+
await this.moveToCalendarEnd(movesToCalendarEndForMonth);
|
|
995
|
+
await this.chooseYear(year);
|
|
996
|
+
await this.chooseMonth(year, month);
|
|
997
|
+
await this.save();
|
|
998
|
+
}
|
|
999
|
+
async getDateFromInput() {
|
|
1000
|
+
const calendarPopoverElement = await this.getElement();
|
|
1001
|
+
return calendarPopoverElement.findElement(
|
|
1002
|
+
import_selenium_webdriver12.By.css(`.${BTN_CALENDAR_POPOVER_DATE_FROM_INPUT_SELECTOR} .${TEXT_EDITOR_SELECTOR}`)
|
|
1003
|
+
);
|
|
1004
|
+
}
|
|
1005
|
+
async getDateToInput() {
|
|
1006
|
+
const calendarPopoverElement = await this.getElement();
|
|
1007
|
+
return calendarPopoverElement.findElement(
|
|
1008
|
+
import_selenium_webdriver12.By.css(`.${BTN_CALENDAR_POPOVER_DATE_TO_INPUT_SELECTOR} .${TEXT_EDITOR_SELECTOR}`)
|
|
1009
|
+
);
|
|
1010
|
+
}
|
|
1011
|
+
async save() {
|
|
1012
|
+
const btnOk = await this.driver.findElement(import_selenium_webdriver12.By.css(`.${BTN_SAVE_SELECTOR}`));
|
|
1013
|
+
await click(btnOk, this.driver);
|
|
1014
|
+
}
|
|
1015
|
+
};
|
|
1016
|
+
}
|
|
1017
|
+
});
|
|
1018
|
+
|
|
1019
|
+
// src/pageObjects/elements/Editors/Date/BaseDateEditor.ts
|
|
1020
|
+
var import_selenium_webdriver13, DATETIME_ALLOWED_SELECTOR, BaseDateEditor;
|
|
1021
|
+
var init_BaseDateEditor = __esm({
|
|
1022
|
+
"src/pageObjects/elements/Editors/Date/BaseDateEditor.ts"() {
|
|
1023
|
+
"use strict";
|
|
1024
|
+
init_AbstractEditor();
|
|
1025
|
+
init_InputClearStrategy();
|
|
1026
|
+
import_selenium_webdriver13 = require("selenium-webdriver");
|
|
1027
|
+
init_actions();
|
|
1028
|
+
init_utils();
|
|
1029
|
+
init_DateSelectMode();
|
|
1030
|
+
init_Calendar();
|
|
821
1031
|
DATETIME_ALLOWED_SELECTOR = "dx-datebox-datetime";
|
|
822
1032
|
BaseDateEditor = class extends AbstractDXEditorWithInput {
|
|
823
1033
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -825,34 +1035,52 @@ var init_BaseDateEditor = __esm({
|
|
|
825
1035
|
this.setClearStrategy(new InputClearStrategy());
|
|
826
1036
|
}
|
|
827
1037
|
async getIsAllowedTime() {
|
|
828
|
-
const dateField = await this.driver.findElement(
|
|
1038
|
+
const dateField = await this.driver.findElement(import_selenium_webdriver13.By.css(`${this.getFullCssSelector()}`));
|
|
829
1039
|
const classString = await dateField.getAttribute("class");
|
|
830
1040
|
return classString.includes(DATETIME_ALLOWED_SELECTOR);
|
|
831
1041
|
}
|
|
832
|
-
async
|
|
833
|
-
const dateField = await this.driver.findElement(import_selenium_webdriver12.By.css(`${this.getFullCssSelector()}`));
|
|
1042
|
+
async initCalendar() {
|
|
834
1043
|
const dateFieldDataTestID = await this.getDataTestId();
|
|
835
|
-
const
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
);
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
1044
|
+
const calendar = new Calendar({
|
|
1045
|
+
parentCssSelector: this.getFullCssSelector(),
|
|
1046
|
+
dateFieldDataTestID,
|
|
1047
|
+
driver: this.driver
|
|
1048
|
+
});
|
|
1049
|
+
await calendar.init();
|
|
1050
|
+
return calendar;
|
|
1051
|
+
}
|
|
1052
|
+
async setValueForWeek(value) {
|
|
1053
|
+
const calendar = await this.initCalendar();
|
|
1054
|
+
await calendar.setValueForWeek(value);
|
|
1055
|
+
}
|
|
1056
|
+
async setValueForMonth(value) {
|
|
1057
|
+
const calendar = await this.initCalendar();
|
|
1058
|
+
await calendar.setValueForMonth(value);
|
|
1059
|
+
}
|
|
1060
|
+
async setArrayValue(value) {
|
|
1061
|
+
const calendar = await this.initCalendar();
|
|
1062
|
+
const dateFromInput = await calendar.getDateFromInput();
|
|
1063
|
+
const dateToInput = await calendar.getDateToInput();
|
|
844
1064
|
await this.setSingleValue(value[0], dateFromInput);
|
|
845
1065
|
await this.setSingleValue(value[1], dateToInput);
|
|
846
|
-
|
|
847
|
-
await click(btnOk, this.driver);
|
|
1066
|
+
await calendar.save();
|
|
848
1067
|
}
|
|
849
1068
|
async setSingleValue(value, inputEl) {
|
|
1069
|
+
const dateMode = await this.getDataDateMode();
|
|
1070
|
+
if (DateSelectMode.isWeek(dateMode)) {
|
|
1071
|
+
await this.setValueForWeek(value);
|
|
1072
|
+
return;
|
|
1073
|
+
}
|
|
1074
|
+
if (DateSelectMode.isMonth(dateMode)) {
|
|
1075
|
+
await this.setValueForMonth(value);
|
|
1076
|
+
return;
|
|
1077
|
+
}
|
|
850
1078
|
const actions = this.driver.actions({ async: true });
|
|
851
1079
|
const isTimeAllowed = await this.getIsAllowedTime();
|
|
852
1080
|
const formattedDate = formatDMYDate(value, isTimeAllowed);
|
|
853
1081
|
await click(inputEl, this.driver);
|
|
854
|
-
await actions.move({ origin: inputEl }).sendKeys(
|
|
855
|
-
await actions.move({ origin: inputEl }).sendKeys(formattedDate,
|
|
1082
|
+
await actions.move({ origin: inputEl }).sendKeys(import_selenium_webdriver13.Key.HOME).perform();
|
|
1083
|
+
await actions.move({ origin: inputEl }).sendKeys(formattedDate, import_selenium_webdriver13.Key.ENTER).perform();
|
|
856
1084
|
}
|
|
857
1085
|
async setDateValue(value) {
|
|
858
1086
|
if (Array.isArray(value)) {
|
|
@@ -866,11 +1094,11 @@ var init_BaseDateEditor = __esm({
|
|
|
866
1094
|
});
|
|
867
1095
|
|
|
868
1096
|
// src/pageObjects/elements/Editors/Date/SingleDateEditor.ts
|
|
869
|
-
var
|
|
1097
|
+
var import_selenium_webdriver14, SingleDateEditor;
|
|
870
1098
|
var init_SingleDateEditor = __esm({
|
|
871
1099
|
"src/pageObjects/elements/Editors/Date/SingleDateEditor.ts"() {
|
|
872
1100
|
"use strict";
|
|
873
|
-
|
|
1101
|
+
import_selenium_webdriver14 = require("selenium-webdriver");
|
|
874
1102
|
init_InputClearStrategy();
|
|
875
1103
|
init_BaseDateEditor();
|
|
876
1104
|
init_utils();
|
|
@@ -880,7 +1108,7 @@ var init_SingleDateEditor = __esm({
|
|
|
880
1108
|
this.setClearStrategy(new InputClearStrategy());
|
|
881
1109
|
}
|
|
882
1110
|
async getDateElement() {
|
|
883
|
-
return this.driver.findElement(
|
|
1111
|
+
return this.driver.findElement(import_selenium_webdriver14.By.css(this.getFullCssSelector() + " .dx-dropdowneditor-input-wrapper input[type=hidden]"));
|
|
884
1112
|
}
|
|
885
1113
|
async getDateValue() {
|
|
886
1114
|
const inputEl = await this.getDateElement();
|
|
@@ -905,11 +1133,11 @@ var init_SingleDateEditor = __esm({
|
|
|
905
1133
|
});
|
|
906
1134
|
|
|
907
1135
|
// src/pageObjects/elements/Editors/Date/DateRangeEditor.ts
|
|
908
|
-
var
|
|
1136
|
+
var import_selenium_webdriver15, DateRangeEditor;
|
|
909
1137
|
var init_DateRangeEditor = __esm({
|
|
910
1138
|
"src/pageObjects/elements/Editors/Date/DateRangeEditor.ts"() {
|
|
911
1139
|
"use strict";
|
|
912
|
-
|
|
1140
|
+
import_selenium_webdriver15 = require("selenium-webdriver");
|
|
913
1141
|
init_InputClearStrategy();
|
|
914
1142
|
init_BaseDateEditor();
|
|
915
1143
|
DateRangeEditor = class extends BaseDateEditor {
|
|
@@ -918,7 +1146,7 @@ var init_DateRangeEditor = __esm({
|
|
|
918
1146
|
this.setClearStrategy(new InputClearStrategy());
|
|
919
1147
|
}
|
|
920
1148
|
async getDateElement() {
|
|
921
|
-
return this.driver.findElement(
|
|
1149
|
+
return this.driver.findElement(import_selenium_webdriver15.By.css(this.getFullCssSelector() + " .dx-texteditor-input"));
|
|
922
1150
|
}
|
|
923
1151
|
async getDateValue() {
|
|
924
1152
|
const inputEl = await this.getDateElement();
|
|
@@ -989,12 +1217,12 @@ var init_DateEditor = __esm({
|
|
|
989
1217
|
});
|
|
990
1218
|
|
|
991
1219
|
// src/pageObjects/elements/Editors/HeaderFilterDictionary.ts
|
|
992
|
-
var
|
|
1220
|
+
var import_selenium_webdriver16, TAGS_SELECTOR2, DX_TAG_CONTAINER2, DX_TEXTEDITOR_EMPTY3, CUSTOM_OPTION_LIST_SELECTOR, SELECT_BOX_OPTION_TEXT_CONTAINER_CLASS2, TAG_BOX_LIST_ITEM_SELECTOR, combinedOptionHeaderFilterDictValueXpath, dropDownHeaderFilterDictionaryOptionClick, HeaderFilterDictionary;
|
|
993
1221
|
var init_HeaderFilterDictionary = __esm({
|
|
994
1222
|
"src/pageObjects/elements/Editors/HeaderFilterDictionary.ts"() {
|
|
995
1223
|
"use strict";
|
|
996
1224
|
init_AbstractEditor();
|
|
997
|
-
|
|
1225
|
+
import_selenium_webdriver16 = require("selenium-webdriver");
|
|
998
1226
|
init_actions();
|
|
999
1227
|
init_locators();
|
|
1000
1228
|
init_ClearButtonStrategy();
|
|
@@ -1015,9 +1243,9 @@ var init_HeaderFilterDictionary = __esm({
|
|
|
1015
1243
|
driver,
|
|
1016
1244
|
timeout: delay ? void 0 : 600,
|
|
1017
1245
|
callback: async () => {
|
|
1018
|
-
const calendarPopoverElement = await driver.findElement(
|
|
1019
|
-
const customOptionList = calendarPopoverElement.findElement(
|
|
1020
|
-
const optElement = await customOptionList.findElement(
|
|
1246
|
+
const calendarPopoverElement = await driver.findElement(import_selenium_webdriver16.By.css(calendarPopoverSelector));
|
|
1247
|
+
const customOptionList = calendarPopoverElement.findElement(import_selenium_webdriver16.By.css(`.${CUSTOM_OPTION_LIST_SELECTOR}`));
|
|
1248
|
+
const optElement = await customOptionList.findElement(import_selenium_webdriver16.By.xpath(combinedOptionHeaderFilterDictValueXpath(optionValue)));
|
|
1021
1249
|
await click(optElement, driver);
|
|
1022
1250
|
}
|
|
1023
1251
|
});
|
|
@@ -1041,7 +1269,7 @@ var init_HeaderFilterDictionary = __esm({
|
|
|
1041
1269
|
}
|
|
1042
1270
|
}
|
|
1043
1271
|
async waitOptionSelection() {
|
|
1044
|
-
await fixElementStaleError(
|
|
1272
|
+
await fixElementStaleError(import_selenium_webdriver16.By.css(TAG_BOX_LIST_ITEM_SELECTOR), this.driver);
|
|
1045
1273
|
}
|
|
1046
1274
|
async selectOption(inputEl, value, lastElement) {
|
|
1047
1275
|
try {
|
|
@@ -1050,7 +1278,7 @@ var init_HeaderFilterDictionary = __esm({
|
|
|
1050
1278
|
await dropDownHeaderFilterDictionaryOptionClick(value, this.driver, dataTEST);
|
|
1051
1279
|
const textLength = await inputEl.getAttribute("value").then((value2) => value2.length);
|
|
1052
1280
|
for (let i = 0; i < textLength; i++) {
|
|
1053
|
-
await inputEl.sendKeys(
|
|
1281
|
+
await inputEl.sendKeys(import_selenium_webdriver16.Key.BACK_SPACE);
|
|
1054
1282
|
}
|
|
1055
1283
|
} catch (error) {
|
|
1056
1284
|
throw error;
|
|
@@ -1065,7 +1293,7 @@ var init_HeaderFilterDictionary = __esm({
|
|
|
1065
1293
|
return [];
|
|
1066
1294
|
}
|
|
1067
1295
|
const tags = await this.driver.findElements(
|
|
1068
|
-
|
|
1296
|
+
import_selenium_webdriver16.By.css(`${this.getFullCssSelector()} .${DX_TAG_CONTAINER2} ${TAGS_SELECTOR2}`)
|
|
1069
1297
|
);
|
|
1070
1298
|
const values = [];
|
|
1071
1299
|
for (const tag of tags) {
|
|
@@ -1232,12 +1460,12 @@ var init_AbstractButton = __esm({
|
|
|
1232
1460
|
});
|
|
1233
1461
|
|
|
1234
1462
|
// src/pageObjects/elements/DXComponents/DXButton.ts
|
|
1235
|
-
var
|
|
1463
|
+
var import_selenium_webdriver18, DXButton;
|
|
1236
1464
|
var init_DXButton = __esm({
|
|
1237
1465
|
"src/pageObjects/elements/DXComponents/DXButton.ts"() {
|
|
1238
1466
|
"use strict";
|
|
1239
1467
|
init_AbstractButton();
|
|
1240
|
-
|
|
1468
|
+
import_selenium_webdriver18 = require("selenium-webdriver");
|
|
1241
1469
|
DXButton = class extends AbstractButton {
|
|
1242
1470
|
async getText() {
|
|
1243
1471
|
const classes = await this.getClasses();
|
|
@@ -1245,7 +1473,7 @@ var init_DXButton = __esm({
|
|
|
1245
1473
|
return null;
|
|
1246
1474
|
}
|
|
1247
1475
|
const el = await this.getElement();
|
|
1248
|
-
const textEl = el.findElement(
|
|
1476
|
+
const textEl = el.findElement(import_selenium_webdriver18.By.className("dx-button-text"));
|
|
1249
1477
|
return await textEl.getText();
|
|
1250
1478
|
}
|
|
1251
1479
|
};
|
|
@@ -1303,12 +1531,12 @@ var init_Panel = __esm({
|
|
|
1303
1531
|
});
|
|
1304
1532
|
|
|
1305
1533
|
// src/pageObjects/elements/Groups/TabPanel.ts
|
|
1306
|
-
var
|
|
1534
|
+
var import_selenium_webdriver19, TabPanelItem, TabPanel;
|
|
1307
1535
|
var init_TabPanel = __esm({
|
|
1308
1536
|
"src/pageObjects/elements/Groups/TabPanel.ts"() {
|
|
1309
1537
|
"use strict";
|
|
1310
1538
|
init_AbstractGroup();
|
|
1311
|
-
|
|
1539
|
+
import_selenium_webdriver19 = require("selenium-webdriver");
|
|
1312
1540
|
init_actions();
|
|
1313
1541
|
TabPanelItem = class extends AbstractGroup {
|
|
1314
1542
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -1319,7 +1547,7 @@ var init_TabPanel = __esm({
|
|
|
1319
1547
|
}
|
|
1320
1548
|
async isActive() {
|
|
1321
1549
|
const tabPanelItemElement = await this.getElement();
|
|
1322
|
-
const grandparentTab = await tabPanelItemElement.findElement(
|
|
1550
|
+
const grandparentTab = await tabPanelItemElement.findElement(import_selenium_webdriver19.By.xpath('ancestor::div[@role="tab"][1]'));
|
|
1323
1551
|
return await grandparentTab.getAttribute("aria-selected") === "true";
|
|
1324
1552
|
}
|
|
1325
1553
|
async getTitle() {
|
|
@@ -1338,12 +1566,12 @@ var init_TabPanel = __esm({
|
|
|
1338
1566
|
});
|
|
1339
1567
|
|
|
1340
1568
|
// src/pageObjects/elements/Groups/Accordion/AccordionItem.ts
|
|
1341
|
-
var
|
|
1569
|
+
var import_selenium_webdriver20, ACCORDION_TITLE_CONTAINER, AccordionItem;
|
|
1342
1570
|
var init_AccordionItem = __esm({
|
|
1343
1571
|
"src/pageObjects/elements/Groups/Accordion/AccordionItem.ts"() {
|
|
1344
1572
|
"use strict";
|
|
1345
1573
|
init_AbstractGroup();
|
|
1346
|
-
|
|
1574
|
+
import_selenium_webdriver20 = require("selenium-webdriver");
|
|
1347
1575
|
init_actions();
|
|
1348
1576
|
ACCORDION_TITLE_CONTAINER = "accordion-title-container";
|
|
1349
1577
|
AccordionItem = class extends AbstractGroup {
|
|
@@ -1356,7 +1584,7 @@ var init_AccordionItem = __esm({
|
|
|
1356
1584
|
}
|
|
1357
1585
|
async clickAccordionItemTitle() {
|
|
1358
1586
|
const accordionElement = await this.getElement();
|
|
1359
|
-
const accordTitleElement = await accordionElement.findElement(
|
|
1587
|
+
const accordTitleElement = await accordionElement.findElement(import_selenium_webdriver20.By.className(ACCORDION_TITLE_CONTAINER));
|
|
1360
1588
|
await accordTitleElement.click();
|
|
1361
1589
|
}
|
|
1362
1590
|
async click() {
|
|
@@ -1595,11 +1823,11 @@ function getCssRowByIndexSelector(index) {
|
|
|
1595
1823
|
function getCssCellByIndexSelector(index) {
|
|
1596
1824
|
return `td[role="gridcell"][aria-colindex="${transformInputIndex(index)}"]`;
|
|
1597
1825
|
}
|
|
1598
|
-
var
|
|
1826
|
+
var import_selenium_webdriver21, getColumnByIndexCssSelector, getColumnByCaptionCssSelector, getColumnByNameCssSelector, transformInputIndex, transformOutputIndex;
|
|
1599
1827
|
var init_utils2 = __esm({
|
|
1600
1828
|
"src/pageObjects/elements/Table/utils.ts"() {
|
|
1601
1829
|
"use strict";
|
|
1602
|
-
|
|
1830
|
+
import_selenium_webdriver21 = require("selenium-webdriver");
|
|
1603
1831
|
getColumnByIndexCssSelector = (columnIndex) => `td[aria-colindex="${transformInputIndex(columnIndex)}"]`;
|
|
1604
1832
|
getColumnByCaptionCssSelector = (caption) => `td[role="columnheader"][aria-label="Column ${caption}"]`;
|
|
1605
1833
|
getColumnByNameCssSelector = (name) => `td[role="columnheader"][data-fieldname="${name}"]`;
|
|
@@ -1616,11 +1844,11 @@ var init_types3 = __esm({
|
|
|
1616
1844
|
});
|
|
1617
1845
|
|
|
1618
1846
|
// src/pageObjects/elements/Table/elements/Cell.ts
|
|
1619
|
-
var
|
|
1847
|
+
var import_selenium_webdriver22, Cell;
|
|
1620
1848
|
var init_Cell = __esm({
|
|
1621
1849
|
"src/pageObjects/elements/Table/elements/Cell.ts"() {
|
|
1622
1850
|
"use strict";
|
|
1623
|
-
|
|
1851
|
+
import_selenium_webdriver22 = require("selenium-webdriver");
|
|
1624
1852
|
init_AbstractElementWithParent();
|
|
1625
1853
|
init_utils2();
|
|
1626
1854
|
init_types3();
|
|
@@ -1637,12 +1865,12 @@ var init_Cell = __esm({
|
|
|
1637
1865
|
this.elementCssSelector = getCssCellByIndexSelector(index);
|
|
1638
1866
|
}
|
|
1639
1867
|
async getBooleanValue(cellEl) {
|
|
1640
|
-
const booleanEl = await cellEl.findElement(
|
|
1868
|
+
const booleanEl = await cellEl.findElement(import_selenium_webdriver22.By.className("boolean-widget"));
|
|
1641
1869
|
return await booleanEl.getAttribute("aria-checked") === "true" ? 1 : 0;
|
|
1642
1870
|
}
|
|
1643
1871
|
async getTagsValue(cellEl) {
|
|
1644
1872
|
const tagsCssSelector = ".multiselect-container .multiselect-cell";
|
|
1645
|
-
const tags = await cellEl.findElements(
|
|
1873
|
+
const tags = await cellEl.findElements(import_selenium_webdriver22.By.css(tagsCssSelector));
|
|
1646
1874
|
const values = [];
|
|
1647
1875
|
for (const tag of tags) {
|
|
1648
1876
|
values.push(await tag.getAttribute("textContent"));
|
|
@@ -1696,11 +1924,11 @@ var init_Cell = __esm({
|
|
|
1696
1924
|
});
|
|
1697
1925
|
|
|
1698
1926
|
// src/pageObjects/elements/Table/elements/Row.ts
|
|
1699
|
-
var
|
|
1927
|
+
var import_selenium_webdriver23, DX_SELECTION_CLASS, DX_ROW_EDIT_CLASS, DX_DATA_ROW_CLASS, Row;
|
|
1700
1928
|
var init_Row = __esm({
|
|
1701
1929
|
"src/pageObjects/elements/Table/elements/Row.ts"() {
|
|
1702
1930
|
"use strict";
|
|
1703
|
-
|
|
1931
|
+
import_selenium_webdriver23 = require("selenium-webdriver");
|
|
1704
1932
|
init_Cell();
|
|
1705
1933
|
init_utils2();
|
|
1706
1934
|
init_AbstractElementWithParent();
|
|
@@ -1751,10 +1979,10 @@ var init_Row = __esm({
|
|
|
1751
1979
|
const rowEl = await this.getElement();
|
|
1752
1980
|
const isSelected = (await this.getClasses()).includes(DX_SELECTION_CLASS);
|
|
1753
1981
|
if (isSelected && !preserve) {
|
|
1754
|
-
await this.driver.actions({ async: true }).keyUp(
|
|
1982
|
+
await this.driver.actions({ async: true }).keyUp(import_selenium_webdriver23.Key.CONTROL).perform();
|
|
1755
1983
|
}
|
|
1756
1984
|
if (preserve && !isSelected) {
|
|
1757
|
-
await this.driver.actions({ async: true }).keyDown(
|
|
1985
|
+
await this.driver.actions({ async: true }).keyDown(import_selenium_webdriver23.Key.CONTROL).perform();
|
|
1758
1986
|
await click(rowEl, this.driver);
|
|
1759
1987
|
return;
|
|
1760
1988
|
}
|
|
@@ -1777,7 +2005,7 @@ var init_Row = __esm({
|
|
|
1777
2005
|
return this.index;
|
|
1778
2006
|
}
|
|
1779
2007
|
async getCells() {
|
|
1780
|
-
const cells = await this.driver.findElements(
|
|
2008
|
+
const cells = await this.driver.findElements(import_selenium_webdriver23.By.css(`${this.getFullCssSelector()} td[role="gridcell"]`));
|
|
1781
2009
|
const result = [];
|
|
1782
2010
|
cells.forEach((_, index) => {
|
|
1783
2011
|
const newCell = this.getCellByIndex(index);
|
|
@@ -1789,7 +2017,7 @@ var init_Row = __esm({
|
|
|
1789
2017
|
const buttonCssSelector = `.${DX_DATA_ROW_CLASS}[aria-rowindex="${transformInputIndex(
|
|
1790
2018
|
this.index
|
|
1791
2019
|
)}"] .${buttonClass}`;
|
|
1792
|
-
const by =
|
|
2020
|
+
const by = import_selenium_webdriver23.By.css(`${this.parentCssSelector} ${this.fixedTableContentCssSelector} ${buttonCssSelector}`);
|
|
1793
2021
|
await staleElementAction(async () => {
|
|
1794
2022
|
const button = await fixElementStaleError(by, this.driver);
|
|
1795
2023
|
await click(button, this.driver);
|
|
@@ -1821,11 +2049,11 @@ var init_Row = __esm({
|
|
|
1821
2049
|
});
|
|
1822
2050
|
|
|
1823
2051
|
// src/pageObjects/elements/Table/elements/Column.ts
|
|
1824
|
-
var
|
|
2052
|
+
var import_selenium_webdriver24, Column;
|
|
1825
2053
|
var init_Column = __esm({
|
|
1826
2054
|
"src/pageObjects/elements/Table/elements/Column.ts"() {
|
|
1827
2055
|
"use strict";
|
|
1828
|
-
|
|
2056
|
+
import_selenium_webdriver24 = require("selenium-webdriver");
|
|
1829
2057
|
init_utils2();
|
|
1830
2058
|
init_AbstractElementWithParent();
|
|
1831
2059
|
init_fixElementStaleError();
|
|
@@ -1853,7 +2081,7 @@ var init_Column = __esm({
|
|
|
1853
2081
|
return super.getElement();
|
|
1854
2082
|
}
|
|
1855
2083
|
async getColumnHeaderIndexBy(cssSelector) {
|
|
1856
|
-
const column = await fixElementStaleError(
|
|
2084
|
+
const column = await fixElementStaleError(import_selenium_webdriver24.By.css(`${this.parentCssSelector} ${this.headerCssSelector} ${cssSelector}`), this.driver);
|
|
1857
2085
|
return transformOutputIndex(await column.getAttribute("aria-colindex"));
|
|
1858
2086
|
}
|
|
1859
2087
|
async getIndexByCaption() {
|
|
@@ -2136,12 +2364,12 @@ var init_cssToXPath = __esm({
|
|
|
2136
2364
|
});
|
|
2137
2365
|
|
|
2138
2366
|
// src/pageObjects/elements/DXContextMenuList.ts
|
|
2139
|
-
var
|
|
2367
|
+
var import_selenium_webdriver25, CONTEXT_MENU_CLASS, CONTEXT_MENU_ITEM_TEXT_CLASS, DXContextMenuList;
|
|
2140
2368
|
var init_DXContextMenuList = __esm({
|
|
2141
2369
|
"src/pageObjects/elements/DXContextMenuList.ts"() {
|
|
2142
2370
|
"use strict";
|
|
2143
2371
|
init_AbstractDropDownMenuList();
|
|
2144
|
-
|
|
2372
|
+
import_selenium_webdriver25 = require("selenium-webdriver");
|
|
2145
2373
|
init_cssToXPath();
|
|
2146
2374
|
init_waitElementIsVisible();
|
|
2147
2375
|
CONTEXT_MENU_CLASS = "dx-context-menu";
|
|
@@ -2158,12 +2386,12 @@ var init_DXContextMenuList = __esm({
|
|
|
2158
2386
|
getButtonTitleBy(title) {
|
|
2159
2387
|
const buttonByTextXpath2 = (text) => `//span[contains(@class, "${CONTEXT_MENU_ITEM_TEXT_CLASS}") and contains(text(), "${text}")]`;
|
|
2160
2388
|
const xpath = "//div" + cssClassesToXPath(this.elementCssSelector) + buttonByTextXpath2(title);
|
|
2161
|
-
return
|
|
2389
|
+
return import_selenium_webdriver25.By.xpath(xpath);
|
|
2162
2390
|
}
|
|
2163
2391
|
async isVisible() {
|
|
2164
2392
|
try {
|
|
2165
2393
|
await waitElementIsVisible_default({
|
|
2166
|
-
element: await this.driver.findElement(
|
|
2394
|
+
element: await this.driver.findElement(import_selenium_webdriver25.By.css(`.dx-overlay-wrapper .dx-context-menu`)),
|
|
2167
2395
|
driver: this.driver,
|
|
2168
2396
|
errorMessage: "Cannot find dropdown element"
|
|
2169
2397
|
});
|
|
@@ -2209,11 +2437,11 @@ var init_ContextMenu = __esm({
|
|
|
2209
2437
|
});
|
|
2210
2438
|
|
|
2211
2439
|
// src/pageObjects/elements/Table/Table.ts
|
|
2212
|
-
var
|
|
2440
|
+
var import_selenium_webdriver26, Table;
|
|
2213
2441
|
var init_Table = __esm({
|
|
2214
2442
|
"src/pageObjects/elements/Table/Table.ts"() {
|
|
2215
2443
|
"use strict";
|
|
2216
|
-
|
|
2444
|
+
import_selenium_webdriver26 = require("selenium-webdriver");
|
|
2217
2445
|
init_createDataTestId();
|
|
2218
2446
|
init_AbstractElementWithParent();
|
|
2219
2447
|
init_Row();
|
|
@@ -2308,7 +2536,7 @@ var init_Table = __esm({
|
|
|
2308
2536
|
driver: this.driver,
|
|
2309
2537
|
timeout,
|
|
2310
2538
|
callback: () => {
|
|
2311
|
-
return this.driver.findElements(
|
|
2539
|
+
return this.driver.findElements(import_selenium_webdriver26.By.css(rowsFullCssSelector));
|
|
2312
2540
|
}
|
|
2313
2541
|
});
|
|
2314
2542
|
}
|
|
@@ -2329,7 +2557,7 @@ var init_Table = __esm({
|
|
|
2329
2557
|
}
|
|
2330
2558
|
async getColumns() {
|
|
2331
2559
|
const columns = await this.driver.findElements(
|
|
2332
|
-
|
|
2560
|
+
import_selenium_webdriver26.By.css(`${this.getFullCssSelector()} ${this.headerCssSelector} td[role="columnheader"] .header-template-text`)
|
|
2333
2561
|
);
|
|
2334
2562
|
const result = [];
|
|
2335
2563
|
columns.forEach((_, index) => {
|
|
@@ -2470,11 +2698,11 @@ var init_Table = __esm({
|
|
|
2470
2698
|
});
|
|
2471
2699
|
|
|
2472
2700
|
// src/pageObjects/elements/TableToolbar/ToolbarButton.ts
|
|
2473
|
-
var
|
|
2701
|
+
var import_selenium_webdriver27, TOOLBAR_BUTTON_CLASS, TOOLBAR_BUTTON_TEXT_CLASS, getToolbarButtonSelector, getToolbarButtonTextSelector, ToolbarButton;
|
|
2474
2702
|
var init_ToolbarButton = __esm({
|
|
2475
2703
|
"src/pageObjects/elements/TableToolbar/ToolbarButton.ts"() {
|
|
2476
2704
|
"use strict";
|
|
2477
|
-
|
|
2705
|
+
import_selenium_webdriver27 = require("selenium-webdriver");
|
|
2478
2706
|
init_AbstractButton();
|
|
2479
2707
|
TOOLBAR_BUTTON_CLASS = "toolbar-button";
|
|
2480
2708
|
TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
|
|
@@ -2491,7 +2719,7 @@ var init_ToolbarButton = __esm({
|
|
|
2491
2719
|
}
|
|
2492
2720
|
async getTitle() {
|
|
2493
2721
|
try {
|
|
2494
|
-
const buttonTextContainer = await this.driver.findElement(
|
|
2722
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver27.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2495
2723
|
return await buttonTextContainer.getText();
|
|
2496
2724
|
} catch (_) {
|
|
2497
2725
|
return null;
|
|
@@ -2502,12 +2730,12 @@ var init_ToolbarButton = __esm({
|
|
|
2502
2730
|
});
|
|
2503
2731
|
|
|
2504
2732
|
// src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
|
|
2505
|
-
var
|
|
2733
|
+
var import_selenium_webdriver28, ToolbarGroupButton;
|
|
2506
2734
|
var init_ToolbarGroupButton = __esm({
|
|
2507
2735
|
"src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts"() {
|
|
2508
2736
|
"use strict";
|
|
2509
2737
|
init_AbstractButton();
|
|
2510
|
-
|
|
2738
|
+
import_selenium_webdriver28 = require("selenium-webdriver");
|
|
2511
2739
|
init_ToolbarButton();
|
|
2512
2740
|
ToolbarGroupButton = class extends AbstractButton {
|
|
2513
2741
|
name;
|
|
@@ -2520,7 +2748,7 @@ var init_ToolbarGroupButton = __esm({
|
|
|
2520
2748
|
}
|
|
2521
2749
|
async getTitle() {
|
|
2522
2750
|
try {
|
|
2523
|
-
const buttonTextContainer = await this.driver.findElement(
|
|
2751
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver28.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2524
2752
|
return await buttonTextContainer.getText();
|
|
2525
2753
|
} catch (_) {
|
|
2526
2754
|
return null;
|
|
@@ -2772,11 +3000,11 @@ var init_FormToolbar = __esm({
|
|
|
2772
3000
|
});
|
|
2773
3001
|
|
|
2774
3002
|
// src/pageObjects/elements/Filters/FilterOperation.ts
|
|
2775
|
-
var
|
|
3003
|
+
var import_selenium_webdriver29, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
|
|
2776
3004
|
var init_FilterOperation = __esm({
|
|
2777
3005
|
"src/pageObjects/elements/Filters/FilterOperation.ts"() {
|
|
2778
3006
|
"use strict";
|
|
2779
|
-
|
|
3007
|
+
import_selenium_webdriver29 = require("selenium-webdriver");
|
|
2780
3008
|
init_fixElementStaleError();
|
|
2781
3009
|
init_AbstractElementWithParent();
|
|
2782
3010
|
init_locators();
|
|
@@ -2816,10 +3044,10 @@ var init_FilterOperation = __esm({
|
|
|
2816
3044
|
errorMessage: "Widget operation is not clickable",
|
|
2817
3045
|
driver: this.driver
|
|
2818
3046
|
});
|
|
2819
|
-
const clickableElement = await widgetButtonEl.findElement(
|
|
3047
|
+
const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver29.By.className("dx-icon"));
|
|
2820
3048
|
await click(clickableElement, this.driver);
|
|
2821
3049
|
try {
|
|
2822
|
-
const widgetPopupEl = await this.driver.findElement(
|
|
3050
|
+
const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver29.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
|
|
2823
3051
|
await waitElementIsVisible_default({
|
|
2824
3052
|
element: widgetPopupEl,
|
|
2825
3053
|
errorMessage: `Operation widget popup is not visible`,
|
|
@@ -2834,7 +3062,7 @@ var init_FilterOperation = __esm({
|
|
|
2834
3062
|
throw new Error(`Operation with name "${operationName}" is not correct.`);
|
|
2835
3063
|
}
|
|
2836
3064
|
await this.initOperationWidget();
|
|
2837
|
-
const operationEl = await fixElementStaleError(
|
|
3065
|
+
const operationEl = await fixElementStaleError(import_selenium_webdriver29.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
|
|
2838
3066
|
await click(operationEl, this.driver);
|
|
2839
3067
|
await safeWait(
|
|
2840
3068
|
async () => {
|
|
@@ -3090,11 +3318,11 @@ var init_PanelFilterField = __esm({
|
|
|
3090
3318
|
});
|
|
3091
3319
|
|
|
3092
3320
|
// src/pageObjects/elements/Filters/FilterPanel.ts
|
|
3093
|
-
var
|
|
3321
|
+
var import_selenium_webdriver30, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
|
|
3094
3322
|
var init_FilterPanel = __esm({
|
|
3095
3323
|
"src/pageObjects/elements/Filters/FilterPanel.ts"() {
|
|
3096
3324
|
"use strict";
|
|
3097
|
-
|
|
3325
|
+
import_selenium_webdriver30 = require("selenium-webdriver");
|
|
3098
3326
|
init_AbstractElement();
|
|
3099
3327
|
init_PanelFilterField();
|
|
3100
3328
|
init_actions();
|
|
@@ -3109,7 +3337,7 @@ var init_FilterPanel = __esm({
|
|
|
3109
3337
|
async filterPanelButtons() {
|
|
3110
3338
|
const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
|
|
3111
3339
|
const el = await this.getElement();
|
|
3112
|
-
return el.findElements(
|
|
3340
|
+
return el.findElements(import_selenium_webdriver30.By.css(selector));
|
|
3113
3341
|
}
|
|
3114
3342
|
constructor(formName, driver) {
|
|
3115
3343
|
super(driver, drawerSelector(formName));
|
|
@@ -3142,7 +3370,7 @@ var init_FilterPanel = __esm({
|
|
|
3142
3370
|
await this.driver.sleep(300);
|
|
3143
3371
|
}
|
|
3144
3372
|
async close() {
|
|
3145
|
-
const btn = await this.driver.findElement(
|
|
3373
|
+
const btn = await this.driver.findElement(import_selenium_webdriver30.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
|
|
3146
3374
|
await click(btn, this.driver);
|
|
3147
3375
|
}
|
|
3148
3376
|
};
|
|
@@ -3178,12 +3406,12 @@ var init_HeaderFilterField = __esm({
|
|
|
3178
3406
|
});
|
|
3179
3407
|
|
|
3180
3408
|
// src/pageObjects/elements/Filters/ColumnFilter.ts
|
|
3181
|
-
var
|
|
3409
|
+
var import_selenium_webdriver31, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
|
|
3182
3410
|
var init_ColumnFilter = __esm({
|
|
3183
3411
|
"src/pageObjects/elements/Filters/ColumnFilter.ts"() {
|
|
3184
3412
|
"use strict";
|
|
3185
3413
|
init_actions();
|
|
3186
|
-
|
|
3414
|
+
import_selenium_webdriver31 = require("selenium-webdriver");
|
|
3187
3415
|
init_HeaderFilterField();
|
|
3188
3416
|
init_waitElementIsVisible();
|
|
3189
3417
|
init_AbstractElement();
|
|
@@ -3208,11 +3436,11 @@ var init_ColumnFilter = __esm({
|
|
|
3208
3436
|
}
|
|
3209
3437
|
async getApplyButton() {
|
|
3210
3438
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
|
|
3211
|
-
return this.driver.findElement(
|
|
3439
|
+
return this.driver.findElement(import_selenium_webdriver31.By.css(selector));
|
|
3212
3440
|
}
|
|
3213
3441
|
async getCancelButton() {
|
|
3214
3442
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
|
|
3215
|
-
return this.driver.findElement(
|
|
3443
|
+
return this.driver.findElement(import_selenium_webdriver31.By.css(selector));
|
|
3216
3444
|
}
|
|
3217
3445
|
async apply() {
|
|
3218
3446
|
const btn = await this.getApplyButton();
|
|
@@ -3226,7 +3454,7 @@ var init_ColumnFilter = __esm({
|
|
|
3226
3454
|
const columnEl = await this._column.getElement();
|
|
3227
3455
|
const actions = this.driver.actions({ async: true });
|
|
3228
3456
|
await actions.move({ origin: columnEl }).perform();
|
|
3229
|
-
const headerFilterIconBy =
|
|
3457
|
+
const headerFilterIconBy = import_selenium_webdriver31.By.css(HEADER_FILTER_ICON);
|
|
3230
3458
|
let headerFilterIcon = await columnEl.findElement(headerFilterIconBy);
|
|
3231
3459
|
await safeWait(
|
|
3232
3460
|
() => {
|
|
@@ -3515,12 +3743,12 @@ var init_createSubFormInstance = __esm({
|
|
|
3515
3743
|
});
|
|
3516
3744
|
|
|
3517
3745
|
// src/pageObjects/elements/Forms/Form.ts
|
|
3518
|
-
var
|
|
3746
|
+
var import_selenium_webdriver32, formTestId, Form;
|
|
3519
3747
|
var init_Form = __esm({
|
|
3520
3748
|
"src/pageObjects/elements/Forms/Form.ts"() {
|
|
3521
3749
|
"use strict";
|
|
3522
3750
|
init_locators();
|
|
3523
|
-
|
|
3751
|
+
import_selenium_webdriver32 = require("selenium-webdriver");
|
|
3524
3752
|
init_AbstractForm();
|
|
3525
3753
|
init_waitElementIsVisible();
|
|
3526
3754
|
init_createSubFormInstance();
|
|
@@ -3545,7 +3773,7 @@ var init_Form = __esm({
|
|
|
3545
3773
|
*/
|
|
3546
3774
|
async getTitleText() {
|
|
3547
3775
|
if (await this.isModal()) {
|
|
3548
|
-
const titleEl2 = await this.driver.findElement(
|
|
3776
|
+
const titleEl2 = await this.driver.findElement(import_selenium_webdriver32.By.css(`${this.popupContainerCssSelector} .popup-title`));
|
|
3549
3777
|
await waitElementIsVisible_default({
|
|
3550
3778
|
element: titleEl2,
|
|
3551
3779
|
driver: this.driver,
|
|
@@ -3553,7 +3781,7 @@ var init_Form = __esm({
|
|
|
3553
3781
|
});
|
|
3554
3782
|
return titleEl2.getText();
|
|
3555
3783
|
}
|
|
3556
|
-
let titleEl = await this.driver.findElement(
|
|
3784
|
+
let titleEl = await this.driver.findElement(import_selenium_webdriver32.By.className("main-toolbar-form-title"));
|
|
3557
3785
|
return titleEl.getText();
|
|
3558
3786
|
}
|
|
3559
3787
|
setSubFormMode() {
|
|
@@ -3572,7 +3800,7 @@ var init_Form = __esm({
|
|
|
3572
3800
|
async subForm(name, options = {}) {
|
|
3573
3801
|
const { isDockPanel = false } = options;
|
|
3574
3802
|
const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name), isDockPanel);
|
|
3575
|
-
const byCssSelector =
|
|
3803
|
+
const byCssSelector = import_selenium_webdriver32.By.css(cssSelector);
|
|
3576
3804
|
const subFormEl = await this.driver.findElement(byCssSelector);
|
|
3577
3805
|
await waitElementIsVisible_default({
|
|
3578
3806
|
element: subFormEl,
|
|
@@ -3602,12 +3830,12 @@ var FormEdit_exports = {};
|
|
|
3602
3830
|
__export(FormEdit_exports, {
|
|
3603
3831
|
default: () => FormEdit
|
|
3604
3832
|
});
|
|
3605
|
-
var
|
|
3833
|
+
var import_selenium_webdriver33, FormEdit;
|
|
3606
3834
|
var init_FormEdit = __esm({
|
|
3607
3835
|
"src/pageObjects/elements/Forms/FormEdit.ts"() {
|
|
3608
3836
|
"use strict";
|
|
3609
3837
|
init_Form();
|
|
3610
|
-
|
|
3838
|
+
import_selenium_webdriver33 = require("selenium-webdriver");
|
|
3611
3839
|
init_FormField();
|
|
3612
3840
|
init_actions();
|
|
3613
3841
|
init_wait();
|
|
@@ -3643,7 +3871,7 @@ var init_FormEdit = __esm({
|
|
|
3643
3871
|
*/
|
|
3644
3872
|
async isSaveButtonDisabled() {
|
|
3645
3873
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3646
|
-
const saveButton = await this.driver.findElement(
|
|
3874
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver33.By.css(saveButtonCssSelector));
|
|
3647
3875
|
const result = await saveButton.getAttribute("aria-disabled");
|
|
3648
3876
|
return result === "true";
|
|
3649
3877
|
}
|
|
@@ -3656,7 +3884,7 @@ var init_FormEdit = __esm({
|
|
|
3656
3884
|
*/
|
|
3657
3885
|
async saveButtonClick() {
|
|
3658
3886
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3659
|
-
const saveButton = await this.driver.findElement(
|
|
3887
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver33.By.css(saveButtonCssSelector));
|
|
3660
3888
|
await safeWait(async () => !await this.isSaveButtonDisabled(), this.driver, "Button is disabled");
|
|
3661
3889
|
await click(saveButton, this.driver);
|
|
3662
3890
|
}
|
|
@@ -3669,7 +3897,7 @@ var init_FormEdit = __esm({
|
|
|
3669
3897
|
*/
|
|
3670
3898
|
async closeButtonClick() {
|
|
3671
3899
|
const closeButtonCssSelector = await this.getButtonCssSelector(this.closeButtonId);
|
|
3672
|
-
const closeButton = await this.driver.findElement(
|
|
3900
|
+
const closeButton = await this.driver.findElement(import_selenium_webdriver33.By.css(closeButtonCssSelector));
|
|
3673
3901
|
await click(closeButton, this.driver);
|
|
3674
3902
|
}
|
|
3675
3903
|
};
|
|
@@ -3855,7 +4083,7 @@ var SubsystemsPanelHeader = class extends AbstractElementWithParent {
|
|
|
3855
4083
|
};
|
|
3856
4084
|
|
|
3857
4085
|
// src/pageObjects/elements/SubsystemsPanel/SubsystemsPanel.ts
|
|
3858
|
-
var
|
|
4086
|
+
var import_selenium_webdriver17 = require("selenium-webdriver");
|
|
3859
4087
|
init_wait();
|
|
3860
4088
|
init_locators();
|
|
3861
4089
|
init_Editors();
|
|
@@ -3953,7 +4181,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3953
4181
|
*/
|
|
3954
4182
|
async searchClear() {
|
|
3955
4183
|
const clearBtnSelector = `#aside ${byTestIdCssSelector(SEARCH_INPUT_SELECTOR)} .${DX_CLEAR_BUTTON_AREA}`;
|
|
3956
|
-
const clearBtn = await fixElementStaleError(
|
|
4184
|
+
const clearBtn = await fixElementStaleError(import_selenium_webdriver17.By.css(clearBtnSelector), this.driver);
|
|
3957
4185
|
if (await clearBtn.isDisplayed()) {
|
|
3958
4186
|
await click(clearBtn, this.driver);
|
|
3959
4187
|
}
|
|
@@ -3967,7 +4195,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3967
4195
|
*/
|
|
3968
4196
|
item(name) {
|
|
3969
4197
|
const elementCSS = createSubSystemTestId(name);
|
|
3970
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
4198
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver17.By.css(`${byTestIdCssSelector(elementCSS, "span")}`) });
|
|
3971
4199
|
}
|
|
3972
4200
|
/**
|
|
3973
4201
|
* Возвращает сабсистему по заголовку
|
|
@@ -3977,7 +4205,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3977
4205
|
* const subsystem = subsystemsPanel.itemByTitle('SubSystemTitle');
|
|
3978
4206
|
*/
|
|
3979
4207
|
itemByTitle(title) {
|
|
3980
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
4208
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver17.By.css(byTitleCssSelector(title)) });
|
|
3981
4209
|
}
|
|
3982
4210
|
/**
|
|
3983
4211
|
* Возвращается на уровень выше по сабсистемам
|
|
@@ -3987,7 +4215,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3987
4215
|
* wait subsystemsPanel.back();
|
|
3988
4216
|
*/
|
|
3989
4217
|
async back() {
|
|
3990
|
-
const by =
|
|
4218
|
+
const by = import_selenium_webdriver17.By.css(`#aside .${BACK_BUTTON_SELECTOR}`);
|
|
3991
4219
|
await waitElementIsVisible_default(
|
|
3992
4220
|
{
|
|
3993
4221
|
by,
|
|
@@ -4032,7 +4260,7 @@ init_FilterPanel();
|
|
|
4032
4260
|
|
|
4033
4261
|
// src/pageObjects/elements/Dialog.ts
|
|
4034
4262
|
init_AbstractElement();
|
|
4035
|
-
var
|
|
4263
|
+
var import_selenium_webdriver34 = require("selenium-webdriver");
|
|
4036
4264
|
init_AbstractButton();
|
|
4037
4265
|
var DIALOG_CLASS = ".d5-dialog";
|
|
4038
4266
|
var DIALOG_TITLE_CLASS = ".dialog__title";
|
|
@@ -4047,7 +4275,7 @@ var DialogButton = class extends AbstractButton {
|
|
|
4047
4275
|
}
|
|
4048
4276
|
async getElement() {
|
|
4049
4277
|
const panel = await super.getElement();
|
|
4050
|
-
return panel.findElement(
|
|
4278
|
+
return panel.findElement(import_selenium_webdriver34.By.xpath(buttonByTextXpath(this.text)));
|
|
4051
4279
|
}
|
|
4052
4280
|
buttonNotDisplayedError() {
|
|
4053
4281
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
@@ -4070,11 +4298,11 @@ var Dialog = class extends AbstractElement {
|
|
|
4070
4298
|
return this.joinRelativeCssSelectors([DIALOG_CLASS, DIALOG_BUTTONS_PANEL_CLASS]);
|
|
4071
4299
|
}
|
|
4072
4300
|
async title() {
|
|
4073
|
-
const el = await this.driver.findElement(
|
|
4301
|
+
const el = await this.driver.findElement(import_selenium_webdriver34.By.css(this.titleSelector));
|
|
4074
4302
|
return await el.getText();
|
|
4075
4303
|
}
|
|
4076
4304
|
async text() {
|
|
4077
|
-
const el = await this.driver.findElement(
|
|
4305
|
+
const el = await this.driver.findElement(import_selenium_webdriver34.By.css(this.textSelector));
|
|
4078
4306
|
return await el.getText();
|
|
4079
4307
|
}
|
|
4080
4308
|
button(text) {
|