d5-testing-library 1.8.0-alpha.20 → 1.8.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.
@@ -0,0 +1,7 @@
1
+ import {
2
+ FormEdit
3
+ } from "./chunk-55ABPMZ7.mjs";
4
+ import "./chunk-BSYJBQIG.mjs";
5
+ export {
6
+ FormEdit as default
7
+ };
@@ -0,0 +1,7 @@
1
+ import {
2
+ ListForm
3
+ } from "./chunk-QP2EDHX5.mjs";
4
+ import "./chunk-BSYJBQIG.mjs";
5
+ export {
6
+ ListForm as default
7
+ };
@@ -0,0 +1,8 @@
1
+ import {
2
+ TreeView
3
+ } from "./chunk-Q4YMEUH5.mjs";
4
+ import "./chunk-QP2EDHX5.mjs";
5
+ import "./chunk-BSYJBQIG.mjs";
6
+ export {
7
+ TreeView as default
8
+ };
@@ -3,7 +3,7 @@ import {
3
3
  FormField,
4
4
  click,
5
5
  wait
6
- } from "./chunk-MV63JF3H.mjs";
6
+ } from "./chunk-BSYJBQIG.mjs";
7
7
 
8
8
  // src/pageObjects/elements/Forms/FormEdit.ts
9
9
  import { By } from "selenium-webdriver";
@@ -1042,6 +1042,9 @@ var FormButton = class extends DXButton {
1042
1042
  buttonNotDisplayedError() {
1043
1043
  return `Form Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
1044
1044
  }
1045
+ async getTitle() {
1046
+ return await this.getText();
1047
+ }
1045
1048
  };
1046
1049
 
1047
1050
  // src/pageObjects/elements/Groups/AbstractGroup.ts
@@ -1289,15 +1292,15 @@ async function classDependencyInjector(formType) {
1289
1292
  let SubFormFactoryClass;
1290
1293
  switch (formType) {
1291
1294
  case "1" /* LIST */:
1292
- SubFormFactoryClass = (await import("./ListForm-EM7E4ZMM.mjs")).default;
1295
+ SubFormFactoryClass = (await import("./ListForm-FJXCM77F.mjs")).default;
1293
1296
  break;
1294
1297
  case "3" /* TREE */:
1295
- SubFormFactoryClass = (await import("./TreeView-F2XF44N2.mjs")).default;
1298
+ SubFormFactoryClass = (await import("./TreeView-KNNQVSJU.mjs")).default;
1296
1299
  break;
1297
1300
  case "2" /* EDIT */:
1298
1301
  case "99" /* FREE_FORM */:
1299
1302
  case "4" /* REPORT */:
1300
- SubFormFactoryClass = (await import("./FormEdit-GTZISTTI.mjs")).default;
1303
+ SubFormFactoryClass = (await import("./FormEdit-TKPY2EAW.mjs")).default;
1301
1304
  break;
1302
1305
  default:
1303
1306
  throw new Error(`Unsupported form type ${formType}`);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ListForm
3
- } from "./chunk-PMZQRKUZ.mjs";
3
+ } from "./chunk-QP2EDHX5.mjs";
4
4
 
5
5
  // src/pageObjects/elements/Forms/TreeView.ts
6
6
  var TREELIST_HEADER_CSS_SELECTOR = ".dx-treelist-headers .dx-treelist-content:not(.dx-datagrid-content-fixed)";
@@ -17,7 +17,7 @@ import {
17
17
  wait,
18
18
  waitElementIsClickable_default,
19
19
  waitElementIsVisible
20
- } from "./chunk-MV63JF3H.mjs";
20
+ } from "./chunk-BSYJBQIG.mjs";
21
21
 
22
22
  // src/pageObjects/elements/Table/Table.ts
23
23
  import { By as By6 } from "selenium-webdriver";
@@ -307,17 +307,31 @@ var AbstractDropDownMenuList = class extends AbstractElementWithParent {
307
307
  const menuItemElement = await fixElementStaleError(by, this.driver);
308
308
  await click(menuItemElement, this.driver);
309
309
  }
310
- async clickItemByPath(path, getBy) {
310
+ async getElementByPath(path, getBy, returnLastElement = false) {
311
311
  let pathList = isString(path) ? [path] : path;
312
+ let result = null;
313
+ let index = 1;
312
314
  for (let text of pathList) {
313
- await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
315
+ if (!returnLastElement || index < pathList.length) {
316
+ await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
317
+ } else {
318
+ result = await fixElementStaleError(getBy(text), this.driver);
319
+ }
320
+ index++;
314
321
  }
322
+ return result;
323
+ }
324
+ async clickButton(name) {
325
+ await this.getElementByPath(name, this.getButtonNameBy.bind(this));
315
326
  }
316
- clickButton(name) {
317
- return this.clickItemByPath(name, this.getButtonNameBy.bind(this));
327
+ async clickButtonByTitle(title) {
328
+ await this.getElementByPath(title, this.getButtonTitleBy.bind(this));
329
+ }
330
+ getMenuItemElementByTitle(title) {
331
+ return this.getElementByPath(title, this.getButtonTitleBy.bind(this), true);
318
332
  }
319
- clickButtonByTitle(title) {
320
- return this.clickItemByPath(title, this.getButtonTitleBy.bind(this));
333
+ getMenuItemElementByName(name) {
334
+ return this.getElementByPath(name, this.getButtonNameBy.bind(this), true);
321
335
  }
322
336
  isVisible() {
323
337
  return Promise.resolve(true);
@@ -550,28 +564,51 @@ var Table = class extends AbstractElementWithParent {
550
564
  };
551
565
 
552
566
  // src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
553
- var ToolbarGroupButton = class extends AbstractButton {
567
+ import { By as By8 } from "selenium-webdriver";
568
+
569
+ // src/pageObjects/elements/TableToolbar/ToolbarButton.ts
570
+ import { By as By7 } from "selenium-webdriver";
571
+ var TOOLBAR_BUTTON_CLASS = "toolbar-button";
572
+ var TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
573
+ var getToolbarButtonSelector = (name) => `#${TOOLBAR_BUTTON_CLASS}-${name}`;
574
+ var getToolbarButtonTextSelector = (name) => `${getToolbarButtonSelector(name)} .${TOOLBAR_BUTTON_TEXT_CLASS}`;
575
+ var ToolbarButton = class extends AbstractButton {
554
576
  name;
555
577
  constructor(parentCssSelector, name, driver) {
556
- super(parentCssSelector, ``, driver);
578
+ super(parentCssSelector, getToolbarButtonSelector(name), driver);
557
579
  this.name = name;
558
580
  }
559
581
  buttonNotDisplayedError() {
560
582
  return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
561
583
  }
584
+ async getTitle() {
585
+ try {
586
+ const buttonTextContainer = await this.driver.findElement(By7.css(getToolbarButtonTextSelector(this.name)));
587
+ return await buttonTextContainer.getText();
588
+ } catch (_) {
589
+ return null;
590
+ }
591
+ }
562
592
  };
563
593
 
564
- // src/pageObjects/elements/TableToolbar/ToolbarButton.ts
565
- var TOOLBAR_BUTTON_CLASS = "toolbar-button";
566
- var ToolbarButton = class extends AbstractButton {
594
+ // src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
595
+ var ToolbarGroupButton = class extends AbstractButton {
567
596
  name;
568
597
  constructor(parentCssSelector, name, driver) {
569
- super(parentCssSelector, `#${TOOLBAR_BUTTON_CLASS}-${name}`, driver);
598
+ super(parentCssSelector, ``, driver);
570
599
  this.name = name;
571
600
  }
572
601
  buttonNotDisplayedError() {
573
602
  return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
574
603
  }
604
+ async getTitle() {
605
+ try {
606
+ const buttonTextContainer = await this.driver.findElement(By8.css(getToolbarButtonTextSelector(this.name)));
607
+ return await buttonTextContainer.getText();
608
+ } catch (_) {
609
+ return null;
610
+ }
611
+ }
575
612
  };
576
613
 
577
614
  // src/pageObjects/elements/AbstractDropDownMenuButton.ts
@@ -594,6 +631,48 @@ var AbstractDropDownMenuButton = class extends AbstractElementWithParent {
594
631
  await this.openDropdownMenu();
595
632
  await this._list.clickButtonByTitle(title);
596
633
  }
634
+ async getMenuItemElementByTitle(title) {
635
+ await this.openDropdownMenu();
636
+ return await this._list.getMenuItemElementByTitle(title);
637
+ }
638
+ async getMenuItemElementByName(name) {
639
+ await this.openDropdownMenu();
640
+ return await this._list.getMenuItemElementByName(name);
641
+ }
642
+ };
643
+
644
+ // src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts
645
+ var ToolbarMenuItem = class {
646
+ getMenuItem;
647
+ name;
648
+ constructor(getMenuItem, name) {
649
+ this.getMenuItem = getMenuItem;
650
+ this.name = name;
651
+ }
652
+ async click() {
653
+ const menuItemElement = await this.getMenuItem(this.name);
654
+ await menuItemElement.click();
655
+ }
656
+ async getTitle() {
657
+ try {
658
+ const menuItemElement = await this.getMenuItem(this.name);
659
+ return await menuItemElement.getText();
660
+ } catch (_) {
661
+ return null;
662
+ }
663
+ }
664
+ async isDisabled() {
665
+ const menuItemElement = await this.getMenuItem(this.name);
666
+ return await menuItemElement.getCssValue("pointer-events") === "none";
667
+ }
668
+ async isDisplayed() {
669
+ try {
670
+ const menuItemElement = await this.getMenuItem(this.name);
671
+ return await menuItemElement.isDisplayed();
672
+ } catch (_) {
673
+ return false;
674
+ }
675
+ }
597
676
  };
598
677
 
599
678
  // src/pageObjects/elements/TableToolbar/ToolbarMenu.ts
@@ -616,15 +695,49 @@ var ToolbarMenu = class extends AbstractDropDownMenuButton {
616
695
  const list = new ToolbarMenuList(parentCssSelector, ".toolbar-dropdown-context-menu", formName, driver);
617
696
  super(parentCssSelector, fullSelector, list, driver);
618
697
  }
619
- async clickButton(name) {
698
+ checkNameValue(name) {
620
699
  if (!isString(name) && !isArray(name))
621
700
  throw new Error(`"name" must be a string or array of string`);
622
- await super.clickButton(name);
623
701
  }
624
- async clickButtonByTitle(title) {
702
+ checkTitleValue(title) {
625
703
  if (!isString(title) && !isArray(title))
626
704
  throw new Error(`"title" must be a string or array of string`);
627
- await super.clickButtonByTitle(title);
705
+ }
706
+ buttonByName(name) {
707
+ this.checkNameValue(name);
708
+ return new ToolbarMenuItem(this.getMenuItemElementByName.bind(this), name);
709
+ }
710
+ buttonByTitle(title) {
711
+ this.checkTitleValue(title);
712
+ return new ToolbarMenuItem(this.getMenuItemElementByTitle.bind(this), title);
713
+ }
714
+ async buttonIsDisplayed(name) {
715
+ const button = this.buttonByName(name);
716
+ return await button.isDisplayed();
717
+ }
718
+ async buttonByTitleIsDisplayed(title) {
719
+ const button = this.buttonByTitle(title);
720
+ return await button.isDisplayed();
721
+ }
722
+ async buttonTitle(name) {
723
+ const button = this.buttonByName(name);
724
+ return await button.getTitle();
725
+ }
726
+ async buttonIsDisabled(name) {
727
+ const button = this.buttonByName(name);
728
+ return await button.isDisabled();
729
+ }
730
+ async buttonByTitleIsDisabled(title) {
731
+ const button = this.buttonByTitle(title);
732
+ return await button.isDisabled();
733
+ }
734
+ async clickButton(name) {
735
+ const button = this.buttonByName(name);
736
+ await button.click();
737
+ }
738
+ async clickButtonByTitle(title) {
739
+ const button = this.buttonByTitle(title);
740
+ await button.click();
628
741
  }
629
742
  };
630
743
 
@@ -666,6 +779,10 @@ var ToolbarItem = class extends AbstractElementWithParent {
666
779
  return false;
667
780
  }
668
781
  }
782
+ async getTitle() {
783
+ await this.init();
784
+ return await this._button.getTitle();
785
+ }
669
786
  get menu() {
670
787
  return new ToolbarMenu(this.parentCssSelector, this._formName, this._itemName, this.driver);
671
788
  }
@@ -685,7 +802,7 @@ var FormToolbar = class extends AbstractElementWithParent {
685
802
  };
686
803
 
687
804
  // src/pageObjects/elements/Filters/FilterOperation.ts
688
- import { By as By7 } from "selenium-webdriver";
805
+ import { By as By9 } from "selenium-webdriver";
689
806
  var FILTER_OPERATIONS = [
690
807
  "=",
691
808
  "<>",
@@ -718,10 +835,10 @@ var FilterOperation = class extends AbstractElementWithParent {
718
835
  errorMessage: "Widget operation is not clickable",
719
836
  driver: this.driver
720
837
  });
721
- const clickableElement = await widgetButtonEl.findElement(By7.className("dx-icon"));
838
+ const clickableElement = await widgetButtonEl.findElement(By9.className("dx-icon"));
722
839
  await click(clickableElement, this.driver);
723
840
  try {
724
- const widgetPopupEl = await this.driver.findElement(By7.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
841
+ const widgetPopupEl = await this.driver.findElement(By9.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
725
842
  await waitElementIsVisible({
726
843
  element: widgetPopupEl,
727
844
  errorMessage: `Operation widget popup is not visible`,
@@ -736,7 +853,7 @@ var FilterOperation = class extends AbstractElementWithParent {
736
853
  throw new Error(`Operation with name "${operationName}" is not correct.`);
737
854
  }
738
855
  await this.initOperationWidget();
739
- const operationEl = await fixElementStaleError(By7.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
856
+ const operationEl = await fixElementStaleError(By9.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
740
857
  await click(operationEl, this.driver);
741
858
  await wait(
742
859
  async () => {
@@ -873,7 +990,7 @@ var FormFilterField = class extends AbstractEditor {
873
990
  };
874
991
 
875
992
  // src/pageObjects/elements/Filters/FilterPanel.ts
876
- import { By as By8 } from "selenium-webdriver";
993
+ import { By as By10 } from "selenium-webdriver";
877
994
 
878
995
  // src/pageObjects/elements/Filters/PanelFilterField.ts
879
996
  var PanelFilterField = class extends AbstractEditor {
@@ -984,7 +1101,7 @@ var FilterPanel = class extends AbstractElement {
984
1101
  async filterPanelButtons() {
985
1102
  const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
986
1103
  const el = await this.getElement();
987
- return el.findElements(By8.css(selector));
1104
+ return el.findElements(By10.css(selector));
988
1105
  }
989
1106
  constructor(formName, driver) {
990
1107
  super(driver, drawerSelector(formName));
@@ -1017,13 +1134,13 @@ var FilterPanel = class extends AbstractElement {
1017
1134
  await this.driver.sleep(300);
1018
1135
  }
1019
1136
  async close() {
1020
- const btn = await this.driver.findElement(By8.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
1137
+ const btn = await this.driver.findElement(By10.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
1021
1138
  await click(btn, this.driver);
1022
1139
  }
1023
1140
  };
1024
1141
 
1025
1142
  // src/pageObjects/elements/Filters/ColumnFilter.ts
1026
- import { By as By9 } from "selenium-webdriver";
1143
+ import { By as By11 } from "selenium-webdriver";
1027
1144
 
1028
1145
  // src/pageObjects/elements/Filters/HeaderFilterField.ts
1029
1146
  var HeaderFilterField = class extends AbstractEditor {
@@ -1063,11 +1180,11 @@ var ColumnFilter = class extends AbstractElement {
1063
1180
  }
1064
1181
  async getApplyButton() {
1065
1182
  const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
1066
- return this.driver.findElement(By9.css(selector));
1183
+ return this.driver.findElement(By11.css(selector));
1067
1184
  }
1068
1185
  async getCancelButton() {
1069
1186
  const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
1070
- return this.driver.findElement(By9.css(selector));
1187
+ return this.driver.findElement(By11.css(selector));
1071
1188
  }
1072
1189
  async apply() {
1073
1190
  const btn = await this.getApplyButton();
@@ -1081,7 +1198,7 @@ var ColumnFilter = class extends AbstractElement {
1081
1198
  const columnEl = await this._column.getElement();
1082
1199
  const actions = this.driver.actions({ async: true });
1083
1200
  await actions.move({ origin: columnEl }).perform();
1084
- const elements = await columnEl.findElements(By9.css(HEADER_FILTER_ICON));
1201
+ const elements = await columnEl.findElements(By11.css(HEADER_FILTER_ICON));
1085
1202
  let headerFilterIcon = null;
1086
1203
  await wait(
1087
1204
  async () => {
@@ -1228,6 +1228,9 @@ var init_FormButton = __esm({
1228
1228
  buttonNotDisplayedError() {
1229
1229
  return `Form Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
1230
1230
  }
1231
+ async getTitle() {
1232
+ return await this.getText();
1233
+ }
1231
1234
  };
1232
1235
  }
1233
1236
  });
@@ -2036,17 +2039,31 @@ var init_AbstractDropDownMenuList = __esm({
2036
2039
  const menuItemElement = await fixElementStaleError(by, this.driver);
2037
2040
  await click(menuItemElement, this.driver);
2038
2041
  }
2039
- async clickItemByPath(path, getBy) {
2042
+ async getElementByPath(path, getBy, returnLastElement = false) {
2040
2043
  let pathList = isString(path) ? [path] : path;
2044
+ let result = null;
2045
+ let index = 1;
2041
2046
  for (let text of pathList) {
2042
- await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
2047
+ if (!returnLastElement || index < pathList.length) {
2048
+ await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
2049
+ } else {
2050
+ result = await fixElementStaleError(getBy(text), this.driver);
2051
+ }
2052
+ index++;
2043
2053
  }
2054
+ return result;
2044
2055
  }
2045
- clickButton(name) {
2046
- return this.clickItemByPath(name, this.getButtonNameBy.bind(this));
2056
+ async clickButton(name) {
2057
+ await this.getElementByPath(name, this.getButtonNameBy.bind(this));
2047
2058
  }
2048
- clickButtonByTitle(title) {
2049
- return this.clickItemByPath(title, this.getButtonTitleBy.bind(this));
2059
+ async clickButtonByTitle(title) {
2060
+ await this.getElementByPath(title, this.getButtonTitleBy.bind(this));
2061
+ }
2062
+ getMenuItemElementByTitle(title) {
2063
+ return this.getElementByPath(title, this.getButtonTitleBy.bind(this), true);
2064
+ }
2065
+ getMenuItemElementByName(name) {
2066
+ return this.getElementByPath(name, this.getButtonNameBy.bind(this), true);
2050
2067
  }
2051
2068
  isVisible() {
2052
2069
  return Promise.resolve(true);
@@ -2314,41 +2331,63 @@ var init_Table = __esm({
2314
2331
  }
2315
2332
  });
2316
2333
 
2317
- // src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
2318
- var ToolbarGroupButton;
2319
- var init_ToolbarGroupButton = __esm({
2320
- "src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts"() {
2334
+ // src/pageObjects/elements/TableToolbar/ToolbarButton.ts
2335
+ var import_selenium_webdriver26, TOOLBAR_BUTTON_CLASS, TOOLBAR_BUTTON_TEXT_CLASS, getToolbarButtonSelector, getToolbarButtonTextSelector, ToolbarButton;
2336
+ var init_ToolbarButton = __esm({
2337
+ "src/pageObjects/elements/TableToolbar/ToolbarButton.ts"() {
2321
2338
  "use strict";
2339
+ import_selenium_webdriver26 = require("selenium-webdriver");
2322
2340
  init_AbstractButton();
2323
- ToolbarGroupButton = class extends AbstractButton {
2341
+ TOOLBAR_BUTTON_CLASS = "toolbar-button";
2342
+ TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
2343
+ getToolbarButtonSelector = (name) => `#${TOOLBAR_BUTTON_CLASS}-${name}`;
2344
+ getToolbarButtonTextSelector = (name) => `${getToolbarButtonSelector(name)} .${TOOLBAR_BUTTON_TEXT_CLASS}`;
2345
+ ToolbarButton = class extends AbstractButton {
2324
2346
  name;
2325
2347
  constructor(parentCssSelector, name, driver) {
2326
- super(parentCssSelector, ``, driver);
2348
+ super(parentCssSelector, getToolbarButtonSelector(name), driver);
2327
2349
  this.name = name;
2328
2350
  }
2329
2351
  buttonNotDisplayedError() {
2330
2352
  return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
2331
2353
  }
2354
+ async getTitle() {
2355
+ try {
2356
+ const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver26.By.css(getToolbarButtonTextSelector(this.name)));
2357
+ return await buttonTextContainer.getText();
2358
+ } catch (_) {
2359
+ return null;
2360
+ }
2361
+ }
2332
2362
  };
2333
2363
  }
2334
2364
  });
2335
2365
 
2336
- // src/pageObjects/elements/TableToolbar/ToolbarButton.ts
2337
- var TOOLBAR_BUTTON_CLASS, ToolbarButton;
2338
- var init_ToolbarButton = __esm({
2339
- "src/pageObjects/elements/TableToolbar/ToolbarButton.ts"() {
2366
+ // src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
2367
+ var import_selenium_webdriver27, ToolbarGroupButton;
2368
+ var init_ToolbarGroupButton = __esm({
2369
+ "src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts"() {
2340
2370
  "use strict";
2341
2371
  init_AbstractButton();
2342
- TOOLBAR_BUTTON_CLASS = "toolbar-button";
2343
- ToolbarButton = class extends AbstractButton {
2372
+ import_selenium_webdriver27 = require("selenium-webdriver");
2373
+ init_ToolbarButton();
2374
+ ToolbarGroupButton = class extends AbstractButton {
2344
2375
  name;
2345
2376
  constructor(parentCssSelector, name, driver) {
2346
- super(parentCssSelector, `#${TOOLBAR_BUTTON_CLASS}-${name}`, driver);
2377
+ super(parentCssSelector, ``, driver);
2347
2378
  this.name = name;
2348
2379
  }
2349
2380
  buttonNotDisplayedError() {
2350
2381
  return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
2351
2382
  }
2383
+ async getTitle() {
2384
+ try {
2385
+ const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver27.By.css(getToolbarButtonTextSelector(this.name)));
2386
+ return await buttonTextContainer.getText();
2387
+ } catch (_) {
2388
+ return null;
2389
+ }
2390
+ }
2352
2391
  };
2353
2392
  }
2354
2393
  });
@@ -2379,6 +2418,54 @@ var init_AbstractDropDownMenuButton = __esm({
2379
2418
  await this.openDropdownMenu();
2380
2419
  await this._list.clickButtonByTitle(title);
2381
2420
  }
2421
+ async getMenuItemElementByTitle(title) {
2422
+ await this.openDropdownMenu();
2423
+ return await this._list.getMenuItemElementByTitle(title);
2424
+ }
2425
+ async getMenuItemElementByName(name) {
2426
+ await this.openDropdownMenu();
2427
+ return await this._list.getMenuItemElementByName(name);
2428
+ }
2429
+ };
2430
+ }
2431
+ });
2432
+
2433
+ // src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts
2434
+ var ToolbarMenuItem;
2435
+ var init_ToolbarMenuItem = __esm({
2436
+ "src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts"() {
2437
+ "use strict";
2438
+ ToolbarMenuItem = class {
2439
+ getMenuItem;
2440
+ name;
2441
+ constructor(getMenuItem, name) {
2442
+ this.getMenuItem = getMenuItem;
2443
+ this.name = name;
2444
+ }
2445
+ async click() {
2446
+ const menuItemElement = await this.getMenuItem(this.name);
2447
+ await menuItemElement.click();
2448
+ }
2449
+ async getTitle() {
2450
+ try {
2451
+ const menuItemElement = await this.getMenuItem(this.name);
2452
+ return await menuItemElement.getText();
2453
+ } catch (_) {
2454
+ return null;
2455
+ }
2456
+ }
2457
+ async isDisabled() {
2458
+ const menuItemElement = await this.getMenuItem(this.name);
2459
+ return await menuItemElement.getCssValue("pointer-events") === "none";
2460
+ }
2461
+ async isDisplayed() {
2462
+ try {
2463
+ const menuItemElement = await this.getMenuItem(this.name);
2464
+ return await menuItemElement.isDisplayed();
2465
+ } catch (_) {
2466
+ return false;
2467
+ }
2468
+ }
2382
2469
  };
2383
2470
  }
2384
2471
  });
@@ -2392,6 +2479,7 @@ var init_ToolbarMenu = __esm({
2392
2479
  init_locators();
2393
2480
  init_AbstractDropDownMenuButton();
2394
2481
  init_DXContextMenuList();
2482
+ init_ToolbarMenuItem();
2395
2483
  SPINDOWN_CLASS = ".dx-icon-spindown";
2396
2484
  buttonGroupItemSelector = (formName, name) => byTestIdCssSelector(`ftb-${formName}-${name}`);
2397
2485
  getFullCssSelector = (formName, name) => `${buttonGroupItemSelector(formName, name)} ${SPINDOWN_CLASS}`;
@@ -2411,15 +2499,49 @@ var init_ToolbarMenu = __esm({
2411
2499
  const list = new ToolbarMenuList(parentCssSelector, ".toolbar-dropdown-context-menu", formName, driver);
2412
2500
  super(parentCssSelector, fullSelector, list, driver);
2413
2501
  }
2414
- async clickButton(name) {
2502
+ checkNameValue(name) {
2415
2503
  if (!isString(name) && !isArray(name))
2416
2504
  throw new Error(`"name" must be a string or array of string`);
2417
- await super.clickButton(name);
2418
2505
  }
2419
- async clickButtonByTitle(title) {
2506
+ checkTitleValue(title) {
2420
2507
  if (!isString(title) && !isArray(title))
2421
2508
  throw new Error(`"title" must be a string or array of string`);
2422
- await super.clickButtonByTitle(title);
2509
+ }
2510
+ buttonByName(name) {
2511
+ this.checkNameValue(name);
2512
+ return new ToolbarMenuItem(this.getMenuItemElementByName.bind(this), name);
2513
+ }
2514
+ buttonByTitle(title) {
2515
+ this.checkTitleValue(title);
2516
+ return new ToolbarMenuItem(this.getMenuItemElementByTitle.bind(this), title);
2517
+ }
2518
+ async buttonIsDisplayed(name) {
2519
+ const button = this.buttonByName(name);
2520
+ return await button.isDisplayed();
2521
+ }
2522
+ async buttonByTitleIsDisplayed(title) {
2523
+ const button = this.buttonByTitle(title);
2524
+ return await button.isDisplayed();
2525
+ }
2526
+ async buttonTitle(name) {
2527
+ const button = this.buttonByName(name);
2528
+ return await button.getTitle();
2529
+ }
2530
+ async buttonIsDisabled(name) {
2531
+ const button = this.buttonByName(name);
2532
+ return await button.isDisabled();
2533
+ }
2534
+ async buttonByTitleIsDisabled(title) {
2535
+ const button = this.buttonByTitle(title);
2536
+ return await button.isDisabled();
2537
+ }
2538
+ async clickButton(name) {
2539
+ const button = this.buttonByName(name);
2540
+ await button.click();
2541
+ }
2542
+ async clickButtonByTitle(title) {
2543
+ const button = this.buttonByTitle(title);
2544
+ await button.click();
2423
2545
  }
2424
2546
  };
2425
2547
  }
@@ -2472,6 +2594,10 @@ var init_ToolbarItem = __esm({
2472
2594
  return false;
2473
2595
  }
2474
2596
  }
2597
+ async getTitle() {
2598
+ await this.init();
2599
+ return await this._button.getTitle();
2600
+ }
2475
2601
  get menu() {
2476
2602
  return new ToolbarMenu(this.parentCssSelector, this._formName, this._itemName, this.driver);
2477
2603
  }
@@ -2501,11 +2627,11 @@ var init_FormToolbar = __esm({
2501
2627
  });
2502
2628
 
2503
2629
  // src/pageObjects/elements/Filters/FilterOperation.ts
2504
- var import_selenium_webdriver26, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
2630
+ var import_selenium_webdriver28, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
2505
2631
  var init_FilterOperation = __esm({
2506
2632
  "src/pageObjects/elements/Filters/FilterOperation.ts"() {
2507
2633
  "use strict";
2508
- import_selenium_webdriver26 = require("selenium-webdriver");
2634
+ import_selenium_webdriver28 = require("selenium-webdriver");
2509
2635
  init_fixElementStaleError();
2510
2636
  init_AbstractElementWithParent();
2511
2637
  init_locators();
@@ -2545,10 +2671,10 @@ var init_FilterOperation = __esm({
2545
2671
  errorMessage: "Widget operation is not clickable",
2546
2672
  driver: this.driver
2547
2673
  });
2548
- const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver26.By.className("dx-icon"));
2674
+ const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver28.By.className("dx-icon"));
2549
2675
  await click(clickableElement, this.driver);
2550
2676
  try {
2551
- const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver26.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
2677
+ const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver28.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
2552
2678
  await waitElementIsVisible({
2553
2679
  element: widgetPopupEl,
2554
2680
  errorMessage: `Operation widget popup is not visible`,
@@ -2563,7 +2689,7 @@ var init_FilterOperation = __esm({
2563
2689
  throw new Error(`Operation with name "${operationName}" is not correct.`);
2564
2690
  }
2565
2691
  await this.initOperationWidget();
2566
- const operationEl = await fixElementStaleError(import_selenium_webdriver26.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
2692
+ const operationEl = await fixElementStaleError(import_selenium_webdriver28.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
2567
2693
  await click(operationEl, this.driver);
2568
2694
  await wait(
2569
2695
  async () => {
@@ -2819,11 +2945,11 @@ var init_PanelFilterField = __esm({
2819
2945
  });
2820
2946
 
2821
2947
  // src/pageObjects/elements/Filters/FilterPanel.ts
2822
- var import_selenium_webdriver27, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
2948
+ var import_selenium_webdriver29, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
2823
2949
  var init_FilterPanel = __esm({
2824
2950
  "src/pageObjects/elements/Filters/FilterPanel.ts"() {
2825
2951
  "use strict";
2826
- import_selenium_webdriver27 = require("selenium-webdriver");
2952
+ import_selenium_webdriver29 = require("selenium-webdriver");
2827
2953
  init_AbstractElement();
2828
2954
  init_PanelFilterField();
2829
2955
  init_actions();
@@ -2838,7 +2964,7 @@ var init_FilterPanel = __esm({
2838
2964
  async filterPanelButtons() {
2839
2965
  const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
2840
2966
  const el = await this.getElement();
2841
- return el.findElements(import_selenium_webdriver27.By.css(selector));
2967
+ return el.findElements(import_selenium_webdriver29.By.css(selector));
2842
2968
  }
2843
2969
  constructor(formName, driver) {
2844
2970
  super(driver, drawerSelector(formName));
@@ -2871,7 +2997,7 @@ var init_FilterPanel = __esm({
2871
2997
  await this.driver.sleep(300);
2872
2998
  }
2873
2999
  async close() {
2874
- const btn = await this.driver.findElement(import_selenium_webdriver27.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
3000
+ const btn = await this.driver.findElement(import_selenium_webdriver29.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
2875
3001
  await click(btn, this.driver);
2876
3002
  }
2877
3003
  };
@@ -2907,12 +3033,12 @@ var init_HeaderFilterField = __esm({
2907
3033
  });
2908
3034
 
2909
3035
  // src/pageObjects/elements/Filters/ColumnFilter.ts
2910
- var import_selenium_webdriver28, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
3036
+ var import_selenium_webdriver30, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
2911
3037
  var init_ColumnFilter = __esm({
2912
3038
  "src/pageObjects/elements/Filters/ColumnFilter.ts"() {
2913
3039
  "use strict";
2914
3040
  init_actions();
2915
- import_selenium_webdriver28 = require("selenium-webdriver");
3041
+ import_selenium_webdriver30 = require("selenium-webdriver");
2916
3042
  init_HeaderFilterField();
2917
3043
  init_waitElementIsVisible();
2918
3044
  init_AbstractElement();
@@ -2937,11 +3063,11 @@ var init_ColumnFilter = __esm({
2937
3063
  }
2938
3064
  async getApplyButton() {
2939
3065
  const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
2940
- return this.driver.findElement(import_selenium_webdriver28.By.css(selector));
3066
+ return this.driver.findElement(import_selenium_webdriver30.By.css(selector));
2941
3067
  }
2942
3068
  async getCancelButton() {
2943
3069
  const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
2944
- return this.driver.findElement(import_selenium_webdriver28.By.css(selector));
3070
+ return this.driver.findElement(import_selenium_webdriver30.By.css(selector));
2945
3071
  }
2946
3072
  async apply() {
2947
3073
  const btn = await this.getApplyButton();
@@ -2955,7 +3081,7 @@ var init_ColumnFilter = __esm({
2955
3081
  const columnEl = await this._column.getElement();
2956
3082
  const actions = this.driver.actions({ async: true });
2957
3083
  await actions.move({ origin: columnEl }).perform();
2958
- const elements = await columnEl.findElements(import_selenium_webdriver28.By.css(HEADER_FILTER_ICON));
3084
+ const elements = await columnEl.findElements(import_selenium_webdriver30.By.css(HEADER_FILTER_ICON));
2959
3085
  let headerFilterIcon = null;
2960
3086
  await wait(
2961
3087
  async () => {
@@ -3252,12 +3378,12 @@ var init_createSubFormInstance = __esm({
3252
3378
  });
3253
3379
 
3254
3380
  // src/pageObjects/elements/Forms/Form.ts
3255
- var import_selenium_webdriver29, formTestId, Form;
3381
+ var import_selenium_webdriver31, formTestId, Form;
3256
3382
  var init_Form = __esm({
3257
3383
  "src/pageObjects/elements/Forms/Form.ts"() {
3258
3384
  "use strict";
3259
3385
  init_locators();
3260
- import_selenium_webdriver29 = require("selenium-webdriver");
3386
+ import_selenium_webdriver31 = require("selenium-webdriver");
3261
3387
  init_AbstractForm();
3262
3388
  init_waitElementIsVisible();
3263
3389
  init_createSubFormInstance();
@@ -3282,7 +3408,7 @@ var init_Form = __esm({
3282
3408
  */
3283
3409
  async getTitleText() {
3284
3410
  if (await this.isModal()) {
3285
- const titleEl2 = await this.driver.findElement(import_selenium_webdriver29.By.css(`${this.popupContainerCssSelector} .popup-title`));
3411
+ const titleEl2 = await this.driver.findElement(import_selenium_webdriver31.By.css(`${this.popupContainerCssSelector} .popup-title`));
3286
3412
  await waitElementIsVisible({
3287
3413
  element: titleEl2,
3288
3414
  driver: this.driver,
@@ -3290,7 +3416,7 @@ var init_Form = __esm({
3290
3416
  });
3291
3417
  return titleEl2.getText();
3292
3418
  }
3293
- let titleEl = await this.driver.findElement(import_selenium_webdriver29.By.className("main-toolbar-form-title"));
3419
+ let titleEl = await this.driver.findElement(import_selenium_webdriver31.By.className("main-toolbar-form-title"));
3294
3420
  return titleEl.getText();
3295
3421
  }
3296
3422
  setSubFormMode() {
@@ -3309,7 +3435,7 @@ var init_Form = __esm({
3309
3435
  async subForm(name, options = {}) {
3310
3436
  const { isDockPanel = false } = options;
3311
3437
  const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name), isDockPanel);
3312
- const byCssSelector = import_selenium_webdriver29.By.css(cssSelector);
3438
+ const byCssSelector = import_selenium_webdriver31.By.css(cssSelector);
3313
3439
  const subFormEl = await this.driver.findElement(byCssSelector);
3314
3440
  await waitElementIsVisible({
3315
3441
  element: subFormEl,
@@ -3339,12 +3465,12 @@ var FormEdit_exports = {};
3339
3465
  __export(FormEdit_exports, {
3340
3466
  default: () => FormEdit
3341
3467
  });
3342
- var import_selenium_webdriver30, FormEdit;
3468
+ var import_selenium_webdriver32, FormEdit;
3343
3469
  var init_FormEdit = __esm({
3344
3470
  "src/pageObjects/elements/Forms/FormEdit.ts"() {
3345
3471
  "use strict";
3346
3472
  init_Form();
3347
- import_selenium_webdriver30 = require("selenium-webdriver");
3473
+ import_selenium_webdriver32 = require("selenium-webdriver");
3348
3474
  init_FormField();
3349
3475
  init_actions();
3350
3476
  init_wait();
@@ -3380,7 +3506,7 @@ var init_FormEdit = __esm({
3380
3506
  */
3381
3507
  async isSaveButtonDisabled() {
3382
3508
  const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
3383
- const saveButton = await this.driver.findElement(import_selenium_webdriver30.By.css(saveButtonCssSelector));
3509
+ const saveButton = await this.driver.findElement(import_selenium_webdriver32.By.css(saveButtonCssSelector));
3384
3510
  const result = await saveButton.getAttribute("aria-disabled");
3385
3511
  return result === "true";
3386
3512
  }
@@ -3393,7 +3519,7 @@ var init_FormEdit = __esm({
3393
3519
  */
3394
3520
  async saveButtonClick() {
3395
3521
  const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
3396
- const saveButton = await this.driver.findElement(import_selenium_webdriver30.By.css(saveButtonCssSelector));
3522
+ const saveButton = await this.driver.findElement(import_selenium_webdriver32.By.css(saveButtonCssSelector));
3397
3523
  await wait(async () => !await this.isSaveButtonDisabled(), this.driver, "Button is disabled");
3398
3524
  await click(saveButton, this.driver);
3399
3525
  }
@@ -3406,7 +3532,7 @@ var init_FormEdit = __esm({
3406
3532
  */
3407
3533
  async closeButtonClick() {
3408
3534
  const closeButtonCssSelector = await this.getButtonCssSelector(this.closeButtonId);
3409
- const closeButton = await this.driver.findElement(import_selenium_webdriver30.By.css(closeButtonCssSelector));
3535
+ const closeButton = await this.driver.findElement(import_selenium_webdriver32.By.css(closeButtonCssSelector));
3410
3536
  await click(closeButton, this.driver);
3411
3537
  }
3412
3538
  };
@@ -3622,6 +3748,7 @@ var SubsystemsPanel = class extends AbstractElement {
3622
3748
  */
3623
3749
  async search(title) {
3624
3750
  const searchComponent = this.getSearchComponent();
3751
+ await this.searchClear();
3625
3752
  await searchComponent.setValue(title);
3626
3753
  await wait(
3627
3754
  async () => {
@@ -3721,7 +3848,7 @@ init_FilterPanel();
3721
3848
 
3722
3849
  // src/pageObjects/elements/Dialog.ts
3723
3850
  init_AbstractElement();
3724
- var import_selenium_webdriver31 = require("selenium-webdriver");
3851
+ var import_selenium_webdriver33 = require("selenium-webdriver");
3725
3852
  init_AbstractButton();
3726
3853
  var DIALOG_CLASS = ".d5-dialog";
3727
3854
  var DIALOG_TITLE_CLASS = ".dialog__title";
@@ -3736,11 +3863,14 @@ var DialogButton = class extends AbstractButton {
3736
3863
  }
3737
3864
  async getElement() {
3738
3865
  const panel = await super.getElement();
3739
- return panel.findElement(import_selenium_webdriver31.By.xpath(buttonByTextXpath(this.text)));
3866
+ return panel.findElement(import_selenium_webdriver33.By.xpath(buttonByTextXpath(this.text)));
3740
3867
  }
3741
3868
  buttonNotDisplayedError() {
3742
3869
  return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
3743
3870
  }
3871
+ getTitle() {
3872
+ throw new Error(`Method "getTitle()" is not working.`);
3873
+ }
3744
3874
  };
3745
3875
  var Dialog = class extends AbstractElement {
3746
3876
  constructor(driver) {
@@ -3756,11 +3886,11 @@ var Dialog = class extends AbstractElement {
3756
3886
  return this.joinRelativeCssSelectors([DIALOG_CLASS, DIALOG_BUTTONS_PANEL_CLASS]);
3757
3887
  }
3758
3888
  async title() {
3759
- const el = await this.driver.findElement(import_selenium_webdriver31.By.css(this.titleSelector));
3889
+ const el = await this.driver.findElement(import_selenium_webdriver33.By.css(this.titleSelector));
3760
3890
  return await el.getText();
3761
3891
  }
3762
3892
  async text() {
3763
- const el = await this.driver.findElement(import_selenium_webdriver31.By.css(this.textSelector));
3893
+ const el = await this.driver.findElement(import_selenium_webdriver33.By.css(this.textSelector));
3764
3894
  return await el.getText();
3765
3895
  }
3766
3896
  button(text) {
@@ -260,6 +260,7 @@ interface Button {
260
260
  click(): Promise<void>;
261
261
  isDisabled(): Promise<boolean>;
262
262
  isDisplayed(): Promise<boolean>;
263
+ getTitle(): Promise<string>;
263
264
  }
264
265
  declare abstract class AbstractButton extends AbstractElementWithParent implements Button {
265
266
  protected constructor(parentCssSelector: string, elementCssSelector: string, driver?: WebDriver);
@@ -267,6 +268,7 @@ declare abstract class AbstractButton extends AbstractElementWithParent implemen
267
268
  click(): Promise<void>;
268
269
  isDisabled(): Promise<boolean>;
269
270
  isDisplayed(): Promise<boolean>;
271
+ abstract getTitle(): Promise<string>;
270
272
  }
271
273
 
272
274
  declare abstract class DXButton extends AbstractButton {
@@ -277,6 +279,7 @@ declare class FormButton extends DXButton {
277
279
  private readonly name;
278
280
  constructor(parentCssSelector: string, formName: string, name: string, driver?: WebDriver);
279
281
  protected buttonNotDisplayedError(): string;
282
+ getTitle(): Promise<string>;
280
283
  }
281
284
 
282
285
  interface Group<TItem = unknown> {
@@ -483,9 +486,11 @@ declare abstract class AbstractDropDownMenuList extends AbstractElementWithParen
483
486
  protected abstract getButtonTitleBy(name: string): By;
484
487
  protected buttonNotDisplayedError(name: string): string;
485
488
  private clickItemBy;
486
- private clickItemByPath;
489
+ private getElementByPath;
487
490
  clickButton(name: string | string[]): Promise<void>;
488
491
  clickButtonByTitle(title: string | string[]): Promise<void>;
492
+ getMenuItemElementByTitle(title: string | string[]): Promise<WebElement>;
493
+ getMenuItemElementByName(name: string | string[]): Promise<WebElement>;
489
494
  isVisible(): Promise<boolean>;
490
495
  }
491
496
 
@@ -495,10 +500,21 @@ declare abstract class AbstractDropDownMenuButton extends AbstractElementWithPar
495
500
  protected openDropdownMenu(): Promise<void>;
496
501
  clickButton(name: string | string[]): Promise<void>;
497
502
  clickButtonByTitle(title: string | string[]): Promise<void>;
503
+ getMenuItemElementByTitle(title: string | string[]): Promise<WebElement>;
504
+ getMenuItemElementByName(name: string | string[]): Promise<WebElement>;
498
505
  }
499
506
 
500
507
  declare class ToolbarMenu extends AbstractDropDownMenuButton {
501
508
  constructor(parentCssSelector: string, formName: string, name: string, driver?: WebDriver);
509
+ private checkNameValue;
510
+ private checkTitleValue;
511
+ private buttonByName;
512
+ private buttonByTitle;
513
+ buttonIsDisplayed(name: string | string[]): Promise<boolean>;
514
+ buttonByTitleIsDisplayed(title: string | string[]): Promise<boolean>;
515
+ buttonTitle(name: string | string[]): Promise<string>;
516
+ buttonIsDisabled(name: string | string[]): Promise<boolean>;
517
+ buttonByTitleIsDisabled(title: string | string[]): Promise<boolean>;
502
518
  clickButton(name: string | string[]): Promise<void>;
503
519
  clickButtonByTitle(title: string | string[]): Promise<void>;
504
520
  }
@@ -512,6 +528,7 @@ declare class ToolbarItem extends AbstractElementWithParent implements Button {
512
528
  click(): Promise<void>;
513
529
  isDisabled(): Promise<boolean>;
514
530
  isDisplayed(): Promise<boolean>;
531
+ getTitle(): Promise<string>;
515
532
  get menu(): ToolbarMenu;
516
533
  }
517
534
 
@@ -968,6 +985,7 @@ declare class DialogButton extends AbstractButton implements Button {
968
985
  constructor(parentCssSelector: string, text: string, driver?: WebDriver);
969
986
  getElement(): Promise<WebElement>;
970
987
  protected buttonNotDisplayedError(): string;
988
+ getTitle(): Promise<string>;
971
989
  }
972
990
  declare class Dialog extends AbstractElement {
973
991
  constructor(driver?: WebDriver);
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TreeView
3
- } from "./chunk-LMFYREYI.mjs";
3
+ } from "./chunk-Q4YMEUH5.mjs";
4
4
  import {
5
5
  FilterPanel,
6
6
  FormFilterField,
7
7
  ListForm,
8
8
  PanelFilterField
9
- } from "./chunk-PMZQRKUZ.mjs";
9
+ } from "./chunk-QP2EDHX5.mjs";
10
10
  import {
11
11
  FormEdit
12
- } from "./chunk-WDYVVF7O.mjs";
12
+ } from "./chunk-55ABPMZ7.mjs";
13
13
  import {
14
14
  AbstractButton,
15
15
  AbstractElement,
@@ -32,7 +32,7 @@ import {
32
32
  wait,
33
33
  waitElementIsClickable_default,
34
34
  waitElementIsVisible
35
- } from "./chunk-MV63JF3H.mjs";
35
+ } from "./chunk-BSYJBQIG.mjs";
36
36
 
37
37
  // src/pageObjects/pages/LoginPage.ts
38
38
  var LOGIN_PATH = "/login";
@@ -173,6 +173,7 @@ var SubsystemsPanel = class extends AbstractElement {
173
173
  */
174
174
  async search(title) {
175
175
  const searchComponent = this.getSearchComponent();
176
+ await this.searchClear();
176
177
  await searchComponent.setValue(title);
177
178
  await wait(
178
179
  async () => {
@@ -277,6 +278,9 @@ var DialogButton = class extends AbstractButton {
277
278
  buttonNotDisplayedError() {
278
279
  return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
279
280
  }
281
+ getTitle() {
282
+ throw new Error(`Method "getTitle()" is not working.`);
283
+ }
280
284
  };
281
285
  var Dialog = class extends AbstractElement {
282
286
  constructor(driver) {
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TreeView
3
- } from "./chunk-LMFYREYI.mjs";
3
+ } from "./chunk-Q4YMEUH5.mjs";
4
4
  import {
5
5
  FilterPanel,
6
6
  FormFilterField,
7
7
  ListForm,
8
8
  PanelFilterField
9
- } from "./chunk-PMZQRKUZ.mjs";
9
+ } from "./chunk-QP2EDHX5.mjs";
10
10
  import {
11
11
  FormEdit
12
- } from "./chunk-WDYVVF7O.mjs";
12
+ } from "./chunk-55ABPMZ7.mjs";
13
13
  import {
14
14
  AbstractButton,
15
15
  AbstractElement,
@@ -32,7 +32,7 @@ import {
32
32
  wait,
33
33
  waitElementIsClickable_default,
34
34
  waitElementIsVisible
35
- } from "./chunk-MV63JF3H.mjs";
35
+ } from "./chunk-BSYJBQIG.mjs";
36
36
 
37
37
  // src/pageObjects/pages/LoginPage.ts
38
38
  var LOGIN_PATH = "/login";
@@ -173,6 +173,7 @@ var SubsystemsPanel = class extends AbstractElement {
173
173
  */
174
174
  async search(title) {
175
175
  const searchComponent = this.getSearchComponent();
176
+ await this.searchClear();
176
177
  await searchComponent.setValue(title);
177
178
  await wait(
178
179
  async () => {
@@ -277,6 +278,9 @@ var DialogButton = class extends AbstractButton {
277
278
  buttonNotDisplayedError() {
278
279
  return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
279
280
  }
281
+ getTitle() {
282
+ throw new Error(`Method "getTitle()" is not working.`);
283
+ }
280
284
  };
281
285
  var Dialog = class extends AbstractElement {
282
286
  constructor(driver) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d5-testing-library",
3
- "version": "1.8.0-alpha.20",
3
+ "version": "1.8.0-alpha.22",
4
4
  "description": "e2e testing D5 projects",
5
5
  "main": "dist/cjs/d5-testing-library.cjs",
6
6
  "module": "dist/d5-testing-library.legacy-esm.js",
@@ -1,7 +0,0 @@
1
- import {
2
- FormEdit
3
- } from "./chunk-WDYVVF7O.mjs";
4
- import "./chunk-MV63JF3H.mjs";
5
- export {
6
- FormEdit as default
7
- };
@@ -1,7 +0,0 @@
1
- import {
2
- ListForm
3
- } from "./chunk-PMZQRKUZ.mjs";
4
- import "./chunk-MV63JF3H.mjs";
5
- export {
6
- ListForm as default
7
- };
@@ -1,8 +0,0 @@
1
- import {
2
- TreeView
3
- } from "./chunk-LMFYREYI.mjs";
4
- import "./chunk-PMZQRKUZ.mjs";
5
- import "./chunk-MV63JF3H.mjs";
6
- export {
7
- TreeView as default
8
- };