d5-testing-library 1.9.0-alpha.21 → 1.9.0-alpha.23
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-QNCHZF44.mjs +7 -0
- package/dist/ListForm-XVX3MPPN.mjs +7 -0
- package/dist/TreeView-BD5ZFSEM.mjs +8 -0
- package/dist/{chunk-ATHAW2ZF.mjs → chunk-E3U3NGWP.mjs} +5 -3
- package/dist/{chunk-6TK257AJ.mjs → chunk-IYW6EWXP.mjs} +1 -1
- package/dist/{chunk-NO3PBR34.mjs → chunk-NCV4XKVP.mjs} +250 -39
- package/dist/{chunk-I5A2CSDF.mjs → chunk-XKVJNYJW.mjs} +1 -1
- package/dist/cjs/d5-testing-library.cjs +340 -110
- 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, FIRST_CLICKED_CELL_SELECTOR, 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();
|
|
@@ -1710,6 +1938,7 @@ var init_Row = __esm({
|
|
|
1710
1938
|
DX_SELECTION_CLASS = "dx-selection";
|
|
1711
1939
|
DX_ROW_EDIT_CLASS = "dx-edit-row";
|
|
1712
1940
|
DX_DATA_ROW_CLASS = "dx-data-row";
|
|
1941
|
+
FIRST_CLICKED_CELL_SELECTOR = 'td[aria-colindex="1"]';
|
|
1713
1942
|
Row = class extends AbstractElementWithParent {
|
|
1714
1943
|
index;
|
|
1715
1944
|
getColumnBy;
|
|
@@ -1750,15 +1979,16 @@ var init_Row = __esm({
|
|
|
1750
1979
|
await staleElementAction(async () => {
|
|
1751
1980
|
const rowEl = await this.getElement();
|
|
1752
1981
|
const isSelected = (await this.getClasses()).includes(DX_SELECTION_CLASS);
|
|
1982
|
+
const clickedElement = await rowEl.findElement(import_selenium_webdriver23.By.css(FIRST_CLICKED_CELL_SELECTOR));
|
|
1753
1983
|
if (isSelected && !preserve) {
|
|
1754
|
-
await this.driver.actions({ async: true }).keyUp(
|
|
1984
|
+
await this.driver.actions({ async: true }).keyUp(import_selenium_webdriver23.Key.CONTROL).perform();
|
|
1755
1985
|
}
|
|
1756
1986
|
if (preserve && !isSelected) {
|
|
1757
|
-
await this.driver.actions({ async: true }).keyDown(
|
|
1758
|
-
await click(
|
|
1987
|
+
await this.driver.actions({ async: true }).keyDown(import_selenium_webdriver23.Key.CONTROL).perform();
|
|
1988
|
+
await click(clickedElement, this.driver);
|
|
1759
1989
|
return;
|
|
1760
1990
|
}
|
|
1761
|
-
await click(
|
|
1991
|
+
await click(clickedElement, this.driver);
|
|
1762
1992
|
});
|
|
1763
1993
|
await safeWait(
|
|
1764
1994
|
async () => {
|
|
@@ -1777,7 +2007,7 @@ var init_Row = __esm({
|
|
|
1777
2007
|
return this.index;
|
|
1778
2008
|
}
|
|
1779
2009
|
async getCells() {
|
|
1780
|
-
const cells = await this.driver.findElements(
|
|
2010
|
+
const cells = await this.driver.findElements(import_selenium_webdriver23.By.css(`${this.getFullCssSelector()} td[role="gridcell"]`));
|
|
1781
2011
|
const result = [];
|
|
1782
2012
|
cells.forEach((_, index) => {
|
|
1783
2013
|
const newCell = this.getCellByIndex(index);
|
|
@@ -1789,7 +2019,7 @@ var init_Row = __esm({
|
|
|
1789
2019
|
const buttonCssSelector = `.${DX_DATA_ROW_CLASS}[aria-rowindex="${transformInputIndex(
|
|
1790
2020
|
this.index
|
|
1791
2021
|
)}"] .${buttonClass}`;
|
|
1792
|
-
const by =
|
|
2022
|
+
const by = import_selenium_webdriver23.By.css(`${this.parentCssSelector} ${this.fixedTableContentCssSelector} ${buttonCssSelector}`);
|
|
1793
2023
|
await staleElementAction(async () => {
|
|
1794
2024
|
const button = await fixElementStaleError(by, this.driver);
|
|
1795
2025
|
await click(button, this.driver);
|
|
@@ -1821,11 +2051,11 @@ var init_Row = __esm({
|
|
|
1821
2051
|
});
|
|
1822
2052
|
|
|
1823
2053
|
// src/pageObjects/elements/Table/elements/Column.ts
|
|
1824
|
-
var
|
|
2054
|
+
var import_selenium_webdriver24, Column;
|
|
1825
2055
|
var init_Column = __esm({
|
|
1826
2056
|
"src/pageObjects/elements/Table/elements/Column.ts"() {
|
|
1827
2057
|
"use strict";
|
|
1828
|
-
|
|
2058
|
+
import_selenium_webdriver24 = require("selenium-webdriver");
|
|
1829
2059
|
init_utils2();
|
|
1830
2060
|
init_AbstractElementWithParent();
|
|
1831
2061
|
init_fixElementStaleError();
|
|
@@ -1853,7 +2083,7 @@ var init_Column = __esm({
|
|
|
1853
2083
|
return super.getElement();
|
|
1854
2084
|
}
|
|
1855
2085
|
async getColumnHeaderIndexBy(cssSelector) {
|
|
1856
|
-
const column = await fixElementStaleError(
|
|
2086
|
+
const column = await fixElementStaleError(import_selenium_webdriver24.By.css(`${this.parentCssSelector} ${this.headerCssSelector} ${cssSelector}`), this.driver);
|
|
1857
2087
|
return transformOutputIndex(await column.getAttribute("aria-colindex"));
|
|
1858
2088
|
}
|
|
1859
2089
|
async getIndexByCaption() {
|
|
@@ -2136,12 +2366,12 @@ var init_cssToXPath = __esm({
|
|
|
2136
2366
|
});
|
|
2137
2367
|
|
|
2138
2368
|
// src/pageObjects/elements/DXContextMenuList.ts
|
|
2139
|
-
var
|
|
2369
|
+
var import_selenium_webdriver25, CONTEXT_MENU_CLASS, CONTEXT_MENU_ITEM_TEXT_CLASS, DXContextMenuList;
|
|
2140
2370
|
var init_DXContextMenuList = __esm({
|
|
2141
2371
|
"src/pageObjects/elements/DXContextMenuList.ts"() {
|
|
2142
2372
|
"use strict";
|
|
2143
2373
|
init_AbstractDropDownMenuList();
|
|
2144
|
-
|
|
2374
|
+
import_selenium_webdriver25 = require("selenium-webdriver");
|
|
2145
2375
|
init_cssToXPath();
|
|
2146
2376
|
init_waitElementIsVisible();
|
|
2147
2377
|
CONTEXT_MENU_CLASS = "dx-context-menu";
|
|
@@ -2158,12 +2388,12 @@ var init_DXContextMenuList = __esm({
|
|
|
2158
2388
|
getButtonTitleBy(title) {
|
|
2159
2389
|
const buttonByTextXpath2 = (text) => `//span[contains(@class, "${CONTEXT_MENU_ITEM_TEXT_CLASS}") and contains(text(), "${text}")]`;
|
|
2160
2390
|
const xpath = "//div" + cssClassesToXPath(this.elementCssSelector) + buttonByTextXpath2(title);
|
|
2161
|
-
return
|
|
2391
|
+
return import_selenium_webdriver25.By.xpath(xpath);
|
|
2162
2392
|
}
|
|
2163
2393
|
async isVisible() {
|
|
2164
2394
|
try {
|
|
2165
2395
|
await waitElementIsVisible_default({
|
|
2166
|
-
element: await this.driver.findElement(
|
|
2396
|
+
element: await this.driver.findElement(import_selenium_webdriver25.By.css(`.dx-overlay-wrapper .dx-context-menu`)),
|
|
2167
2397
|
driver: this.driver,
|
|
2168
2398
|
errorMessage: "Cannot find dropdown element"
|
|
2169
2399
|
});
|
|
@@ -2209,11 +2439,11 @@ var init_ContextMenu = __esm({
|
|
|
2209
2439
|
});
|
|
2210
2440
|
|
|
2211
2441
|
// src/pageObjects/elements/Table/Table.ts
|
|
2212
|
-
var
|
|
2442
|
+
var import_selenium_webdriver26, Table;
|
|
2213
2443
|
var init_Table = __esm({
|
|
2214
2444
|
"src/pageObjects/elements/Table/Table.ts"() {
|
|
2215
2445
|
"use strict";
|
|
2216
|
-
|
|
2446
|
+
import_selenium_webdriver26 = require("selenium-webdriver");
|
|
2217
2447
|
init_createDataTestId();
|
|
2218
2448
|
init_AbstractElementWithParent();
|
|
2219
2449
|
init_Row();
|
|
@@ -2308,7 +2538,7 @@ var init_Table = __esm({
|
|
|
2308
2538
|
driver: this.driver,
|
|
2309
2539
|
timeout,
|
|
2310
2540
|
callback: () => {
|
|
2311
|
-
return this.driver.findElements(
|
|
2541
|
+
return this.driver.findElements(import_selenium_webdriver26.By.css(rowsFullCssSelector));
|
|
2312
2542
|
}
|
|
2313
2543
|
});
|
|
2314
2544
|
}
|
|
@@ -2329,7 +2559,7 @@ var init_Table = __esm({
|
|
|
2329
2559
|
}
|
|
2330
2560
|
async getColumns() {
|
|
2331
2561
|
const columns = await this.driver.findElements(
|
|
2332
|
-
|
|
2562
|
+
import_selenium_webdriver26.By.css(`${this.getFullCssSelector()} ${this.headerCssSelector} td[role="columnheader"] .header-template-text`)
|
|
2333
2563
|
);
|
|
2334
2564
|
const result = [];
|
|
2335
2565
|
columns.forEach((_, index) => {
|
|
@@ -2470,11 +2700,11 @@ var init_Table = __esm({
|
|
|
2470
2700
|
});
|
|
2471
2701
|
|
|
2472
2702
|
// src/pageObjects/elements/TableToolbar/ToolbarButton.ts
|
|
2473
|
-
var
|
|
2703
|
+
var import_selenium_webdriver27, TOOLBAR_BUTTON_CLASS, TOOLBAR_BUTTON_TEXT_CLASS, getToolbarButtonSelector, getToolbarButtonTextSelector, ToolbarButton;
|
|
2474
2704
|
var init_ToolbarButton = __esm({
|
|
2475
2705
|
"src/pageObjects/elements/TableToolbar/ToolbarButton.ts"() {
|
|
2476
2706
|
"use strict";
|
|
2477
|
-
|
|
2707
|
+
import_selenium_webdriver27 = require("selenium-webdriver");
|
|
2478
2708
|
init_AbstractButton();
|
|
2479
2709
|
TOOLBAR_BUTTON_CLASS = "toolbar-button";
|
|
2480
2710
|
TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
|
|
@@ -2491,7 +2721,7 @@ var init_ToolbarButton = __esm({
|
|
|
2491
2721
|
}
|
|
2492
2722
|
async getTitle() {
|
|
2493
2723
|
try {
|
|
2494
|
-
const buttonTextContainer = await this.driver.findElement(
|
|
2724
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver27.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2495
2725
|
return await buttonTextContainer.getText();
|
|
2496
2726
|
} catch (_) {
|
|
2497
2727
|
return null;
|
|
@@ -2502,12 +2732,12 @@ var init_ToolbarButton = __esm({
|
|
|
2502
2732
|
});
|
|
2503
2733
|
|
|
2504
2734
|
// src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
|
|
2505
|
-
var
|
|
2735
|
+
var import_selenium_webdriver28, ToolbarGroupButton;
|
|
2506
2736
|
var init_ToolbarGroupButton = __esm({
|
|
2507
2737
|
"src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts"() {
|
|
2508
2738
|
"use strict";
|
|
2509
2739
|
init_AbstractButton();
|
|
2510
|
-
|
|
2740
|
+
import_selenium_webdriver28 = require("selenium-webdriver");
|
|
2511
2741
|
init_ToolbarButton();
|
|
2512
2742
|
ToolbarGroupButton = class extends AbstractButton {
|
|
2513
2743
|
name;
|
|
@@ -2520,7 +2750,7 @@ var init_ToolbarGroupButton = __esm({
|
|
|
2520
2750
|
}
|
|
2521
2751
|
async getTitle() {
|
|
2522
2752
|
try {
|
|
2523
|
-
const buttonTextContainer = await this.driver.findElement(
|
|
2753
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver28.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2524
2754
|
return await buttonTextContainer.getText();
|
|
2525
2755
|
} catch (_) {
|
|
2526
2756
|
return null;
|
|
@@ -2772,11 +3002,11 @@ var init_FormToolbar = __esm({
|
|
|
2772
3002
|
});
|
|
2773
3003
|
|
|
2774
3004
|
// src/pageObjects/elements/Filters/FilterOperation.ts
|
|
2775
|
-
var
|
|
3005
|
+
var import_selenium_webdriver29, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
|
|
2776
3006
|
var init_FilterOperation = __esm({
|
|
2777
3007
|
"src/pageObjects/elements/Filters/FilterOperation.ts"() {
|
|
2778
3008
|
"use strict";
|
|
2779
|
-
|
|
3009
|
+
import_selenium_webdriver29 = require("selenium-webdriver");
|
|
2780
3010
|
init_fixElementStaleError();
|
|
2781
3011
|
init_AbstractElementWithParent();
|
|
2782
3012
|
init_locators();
|
|
@@ -2816,10 +3046,10 @@ var init_FilterOperation = __esm({
|
|
|
2816
3046
|
errorMessage: "Widget operation is not clickable",
|
|
2817
3047
|
driver: this.driver
|
|
2818
3048
|
});
|
|
2819
|
-
const clickableElement = await widgetButtonEl.findElement(
|
|
3049
|
+
const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver29.By.className("dx-icon"));
|
|
2820
3050
|
await click(clickableElement, this.driver);
|
|
2821
3051
|
try {
|
|
2822
|
-
const widgetPopupEl = await this.driver.findElement(
|
|
3052
|
+
const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver29.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
|
|
2823
3053
|
await waitElementIsVisible_default({
|
|
2824
3054
|
element: widgetPopupEl,
|
|
2825
3055
|
errorMessage: `Operation widget popup is not visible`,
|
|
@@ -2834,7 +3064,7 @@ var init_FilterOperation = __esm({
|
|
|
2834
3064
|
throw new Error(`Operation with name "${operationName}" is not correct.`);
|
|
2835
3065
|
}
|
|
2836
3066
|
await this.initOperationWidget();
|
|
2837
|
-
const operationEl = await fixElementStaleError(
|
|
3067
|
+
const operationEl = await fixElementStaleError(import_selenium_webdriver29.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
|
|
2838
3068
|
await click(operationEl, this.driver);
|
|
2839
3069
|
await safeWait(
|
|
2840
3070
|
async () => {
|
|
@@ -3090,11 +3320,11 @@ var init_PanelFilterField = __esm({
|
|
|
3090
3320
|
});
|
|
3091
3321
|
|
|
3092
3322
|
// src/pageObjects/elements/Filters/FilterPanel.ts
|
|
3093
|
-
var
|
|
3323
|
+
var import_selenium_webdriver30, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
|
|
3094
3324
|
var init_FilterPanel = __esm({
|
|
3095
3325
|
"src/pageObjects/elements/Filters/FilterPanel.ts"() {
|
|
3096
3326
|
"use strict";
|
|
3097
|
-
|
|
3327
|
+
import_selenium_webdriver30 = require("selenium-webdriver");
|
|
3098
3328
|
init_AbstractElement();
|
|
3099
3329
|
init_PanelFilterField();
|
|
3100
3330
|
init_actions();
|
|
@@ -3109,7 +3339,7 @@ var init_FilterPanel = __esm({
|
|
|
3109
3339
|
async filterPanelButtons() {
|
|
3110
3340
|
const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
|
|
3111
3341
|
const el = await this.getElement();
|
|
3112
|
-
return el.findElements(
|
|
3342
|
+
return el.findElements(import_selenium_webdriver30.By.css(selector));
|
|
3113
3343
|
}
|
|
3114
3344
|
constructor(formName, driver) {
|
|
3115
3345
|
super(driver, drawerSelector(formName));
|
|
@@ -3142,7 +3372,7 @@ var init_FilterPanel = __esm({
|
|
|
3142
3372
|
await this.driver.sleep(300);
|
|
3143
3373
|
}
|
|
3144
3374
|
async close() {
|
|
3145
|
-
const btn = await this.driver.findElement(
|
|
3375
|
+
const btn = await this.driver.findElement(import_selenium_webdriver30.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
|
|
3146
3376
|
await click(btn, this.driver);
|
|
3147
3377
|
}
|
|
3148
3378
|
};
|
|
@@ -3178,12 +3408,12 @@ var init_HeaderFilterField = __esm({
|
|
|
3178
3408
|
});
|
|
3179
3409
|
|
|
3180
3410
|
// src/pageObjects/elements/Filters/ColumnFilter.ts
|
|
3181
|
-
var
|
|
3411
|
+
var import_selenium_webdriver31, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
|
|
3182
3412
|
var init_ColumnFilter = __esm({
|
|
3183
3413
|
"src/pageObjects/elements/Filters/ColumnFilter.ts"() {
|
|
3184
3414
|
"use strict";
|
|
3185
3415
|
init_actions();
|
|
3186
|
-
|
|
3416
|
+
import_selenium_webdriver31 = require("selenium-webdriver");
|
|
3187
3417
|
init_HeaderFilterField();
|
|
3188
3418
|
init_waitElementIsVisible();
|
|
3189
3419
|
init_AbstractElement();
|
|
@@ -3208,11 +3438,11 @@ var init_ColumnFilter = __esm({
|
|
|
3208
3438
|
}
|
|
3209
3439
|
async getApplyButton() {
|
|
3210
3440
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
|
|
3211
|
-
return this.driver.findElement(
|
|
3441
|
+
return this.driver.findElement(import_selenium_webdriver31.By.css(selector));
|
|
3212
3442
|
}
|
|
3213
3443
|
async getCancelButton() {
|
|
3214
3444
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
|
|
3215
|
-
return this.driver.findElement(
|
|
3445
|
+
return this.driver.findElement(import_selenium_webdriver31.By.css(selector));
|
|
3216
3446
|
}
|
|
3217
3447
|
async apply() {
|
|
3218
3448
|
const btn = await this.getApplyButton();
|
|
@@ -3226,7 +3456,7 @@ var init_ColumnFilter = __esm({
|
|
|
3226
3456
|
const columnEl = await this._column.getElement();
|
|
3227
3457
|
const actions = this.driver.actions({ async: true });
|
|
3228
3458
|
await actions.move({ origin: columnEl }).perform();
|
|
3229
|
-
const headerFilterIconBy =
|
|
3459
|
+
const headerFilterIconBy = import_selenium_webdriver31.By.css(HEADER_FILTER_ICON);
|
|
3230
3460
|
let headerFilterIcon = await columnEl.findElement(headerFilterIconBy);
|
|
3231
3461
|
await safeWait(
|
|
3232
3462
|
() => {
|
|
@@ -3515,12 +3745,12 @@ var init_createSubFormInstance = __esm({
|
|
|
3515
3745
|
});
|
|
3516
3746
|
|
|
3517
3747
|
// src/pageObjects/elements/Forms/Form.ts
|
|
3518
|
-
var
|
|
3748
|
+
var import_selenium_webdriver32, formTestId, Form;
|
|
3519
3749
|
var init_Form = __esm({
|
|
3520
3750
|
"src/pageObjects/elements/Forms/Form.ts"() {
|
|
3521
3751
|
"use strict";
|
|
3522
3752
|
init_locators();
|
|
3523
|
-
|
|
3753
|
+
import_selenium_webdriver32 = require("selenium-webdriver");
|
|
3524
3754
|
init_AbstractForm();
|
|
3525
3755
|
init_waitElementIsVisible();
|
|
3526
3756
|
init_createSubFormInstance();
|
|
@@ -3545,7 +3775,7 @@ var init_Form = __esm({
|
|
|
3545
3775
|
*/
|
|
3546
3776
|
async getTitleText() {
|
|
3547
3777
|
if (await this.isModal()) {
|
|
3548
|
-
const titleEl2 = await this.driver.findElement(
|
|
3778
|
+
const titleEl2 = await this.driver.findElement(import_selenium_webdriver32.By.css(`${this.popupContainerCssSelector} .popup-title`));
|
|
3549
3779
|
await waitElementIsVisible_default({
|
|
3550
3780
|
element: titleEl2,
|
|
3551
3781
|
driver: this.driver,
|
|
@@ -3553,7 +3783,7 @@ var init_Form = __esm({
|
|
|
3553
3783
|
});
|
|
3554
3784
|
return titleEl2.getText();
|
|
3555
3785
|
}
|
|
3556
|
-
let titleEl = await this.driver.findElement(
|
|
3786
|
+
let titleEl = await this.driver.findElement(import_selenium_webdriver32.By.className("main-toolbar-form-title"));
|
|
3557
3787
|
return titleEl.getText();
|
|
3558
3788
|
}
|
|
3559
3789
|
setSubFormMode() {
|
|
@@ -3572,7 +3802,7 @@ var init_Form = __esm({
|
|
|
3572
3802
|
async subForm(name, options = {}) {
|
|
3573
3803
|
const { isDockPanel = false } = options;
|
|
3574
3804
|
const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name), isDockPanel);
|
|
3575
|
-
const byCssSelector =
|
|
3805
|
+
const byCssSelector = import_selenium_webdriver32.By.css(cssSelector);
|
|
3576
3806
|
const subFormEl = await this.driver.findElement(byCssSelector);
|
|
3577
3807
|
await waitElementIsVisible_default({
|
|
3578
3808
|
element: subFormEl,
|
|
@@ -3602,12 +3832,12 @@ var FormEdit_exports = {};
|
|
|
3602
3832
|
__export(FormEdit_exports, {
|
|
3603
3833
|
default: () => FormEdit
|
|
3604
3834
|
});
|
|
3605
|
-
var
|
|
3835
|
+
var import_selenium_webdriver33, FormEdit;
|
|
3606
3836
|
var init_FormEdit = __esm({
|
|
3607
3837
|
"src/pageObjects/elements/Forms/FormEdit.ts"() {
|
|
3608
3838
|
"use strict";
|
|
3609
3839
|
init_Form();
|
|
3610
|
-
|
|
3840
|
+
import_selenium_webdriver33 = require("selenium-webdriver");
|
|
3611
3841
|
init_FormField();
|
|
3612
3842
|
init_actions();
|
|
3613
3843
|
init_wait();
|
|
@@ -3643,7 +3873,7 @@ var init_FormEdit = __esm({
|
|
|
3643
3873
|
*/
|
|
3644
3874
|
async isSaveButtonDisabled() {
|
|
3645
3875
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3646
|
-
const saveButton = await this.driver.findElement(
|
|
3876
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver33.By.css(saveButtonCssSelector));
|
|
3647
3877
|
const result = await saveButton.getAttribute("aria-disabled");
|
|
3648
3878
|
return result === "true";
|
|
3649
3879
|
}
|
|
@@ -3656,7 +3886,7 @@ var init_FormEdit = __esm({
|
|
|
3656
3886
|
*/
|
|
3657
3887
|
async saveButtonClick() {
|
|
3658
3888
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3659
|
-
const saveButton = await this.driver.findElement(
|
|
3889
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver33.By.css(saveButtonCssSelector));
|
|
3660
3890
|
await safeWait(async () => !await this.isSaveButtonDisabled(), this.driver, "Button is disabled");
|
|
3661
3891
|
await click(saveButton, this.driver);
|
|
3662
3892
|
}
|
|
@@ -3669,7 +3899,7 @@ var init_FormEdit = __esm({
|
|
|
3669
3899
|
*/
|
|
3670
3900
|
async closeButtonClick() {
|
|
3671
3901
|
const closeButtonCssSelector = await this.getButtonCssSelector(this.closeButtonId);
|
|
3672
|
-
const closeButton = await this.driver.findElement(
|
|
3902
|
+
const closeButton = await this.driver.findElement(import_selenium_webdriver33.By.css(closeButtonCssSelector));
|
|
3673
3903
|
await click(closeButton, this.driver);
|
|
3674
3904
|
}
|
|
3675
3905
|
};
|
|
@@ -3855,7 +4085,7 @@ var SubsystemsPanelHeader = class extends AbstractElementWithParent {
|
|
|
3855
4085
|
};
|
|
3856
4086
|
|
|
3857
4087
|
// src/pageObjects/elements/SubsystemsPanel/SubsystemsPanel.ts
|
|
3858
|
-
var
|
|
4088
|
+
var import_selenium_webdriver17 = require("selenium-webdriver");
|
|
3859
4089
|
init_wait();
|
|
3860
4090
|
init_locators();
|
|
3861
4091
|
init_Editors();
|
|
@@ -3953,7 +4183,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3953
4183
|
*/
|
|
3954
4184
|
async searchClear() {
|
|
3955
4185
|
const clearBtnSelector = `#aside ${byTestIdCssSelector(SEARCH_INPUT_SELECTOR)} .${DX_CLEAR_BUTTON_AREA}`;
|
|
3956
|
-
const clearBtn = await fixElementStaleError(
|
|
4186
|
+
const clearBtn = await fixElementStaleError(import_selenium_webdriver17.By.css(clearBtnSelector), this.driver);
|
|
3957
4187
|
if (await clearBtn.isDisplayed()) {
|
|
3958
4188
|
await click(clearBtn, this.driver);
|
|
3959
4189
|
}
|
|
@@ -3967,7 +4197,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3967
4197
|
*/
|
|
3968
4198
|
item(name) {
|
|
3969
4199
|
const elementCSS = createSubSystemTestId(name);
|
|
3970
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
4200
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver17.By.css(`${byTestIdCssSelector(elementCSS, "span")}`) });
|
|
3971
4201
|
}
|
|
3972
4202
|
/**
|
|
3973
4203
|
* Возвращает сабсистему по заголовку
|
|
@@ -3977,7 +4207,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3977
4207
|
* const subsystem = subsystemsPanel.itemByTitle('SubSystemTitle');
|
|
3978
4208
|
*/
|
|
3979
4209
|
itemByTitle(title) {
|
|
3980
|
-
return new SubsystemItem({ driver: this.driver, bySelector:
|
|
4210
|
+
return new SubsystemItem({ driver: this.driver, bySelector: import_selenium_webdriver17.By.css(byTitleCssSelector(title)) });
|
|
3981
4211
|
}
|
|
3982
4212
|
/**
|
|
3983
4213
|
* Возвращается на уровень выше по сабсистемам
|
|
@@ -3987,7 +4217,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3987
4217
|
* wait subsystemsPanel.back();
|
|
3988
4218
|
*/
|
|
3989
4219
|
async back() {
|
|
3990
|
-
const by =
|
|
4220
|
+
const by = import_selenium_webdriver17.By.css(`#aside .${BACK_BUTTON_SELECTOR}`);
|
|
3991
4221
|
await waitElementIsVisible_default(
|
|
3992
4222
|
{
|
|
3993
4223
|
by,
|
|
@@ -4032,7 +4262,7 @@ init_FilterPanel();
|
|
|
4032
4262
|
|
|
4033
4263
|
// src/pageObjects/elements/Dialog.ts
|
|
4034
4264
|
init_AbstractElement();
|
|
4035
|
-
var
|
|
4265
|
+
var import_selenium_webdriver34 = require("selenium-webdriver");
|
|
4036
4266
|
init_AbstractButton();
|
|
4037
4267
|
var DIALOG_CLASS = ".d5-dialog";
|
|
4038
4268
|
var DIALOG_TITLE_CLASS = ".dialog__title";
|
|
@@ -4047,7 +4277,7 @@ var DialogButton = class extends AbstractButton {
|
|
|
4047
4277
|
}
|
|
4048
4278
|
async getElement() {
|
|
4049
4279
|
const panel = await super.getElement();
|
|
4050
|
-
return panel.findElement(
|
|
4280
|
+
return panel.findElement(import_selenium_webdriver34.By.xpath(buttonByTextXpath(this.text)));
|
|
4051
4281
|
}
|
|
4052
4282
|
buttonNotDisplayedError() {
|
|
4053
4283
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
@@ -4070,11 +4300,11 @@ var Dialog = class extends AbstractElement {
|
|
|
4070
4300
|
return this.joinRelativeCssSelectors([DIALOG_CLASS, DIALOG_BUTTONS_PANEL_CLASS]);
|
|
4071
4301
|
}
|
|
4072
4302
|
async title() {
|
|
4073
|
-
const el = await this.driver.findElement(
|
|
4303
|
+
const el = await this.driver.findElement(import_selenium_webdriver34.By.css(this.titleSelector));
|
|
4074
4304
|
return await el.getText();
|
|
4075
4305
|
}
|
|
4076
4306
|
async text() {
|
|
4077
|
-
const el = await this.driver.findElement(
|
|
4307
|
+
const el = await this.driver.findElement(import_selenium_webdriver34.By.css(this.textSelector));
|
|
4078
4308
|
return await el.getText();
|
|
4079
4309
|
}
|
|
4080
4310
|
button(text) {
|