d5-testing-library 1.9.0-alpha.8 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/FormEdit-VFV53QIZ.mjs +7 -0
- package/dist/ListForm-KIHLT7EU.mjs +7 -0
- package/dist/TreeView-TFBZB2UK.mjs +8 -0
- package/dist/{chunk-UFDW7PIX.mjs → chunk-EFNMD3S7.mjs} +1 -1
- package/dist/{chunk-F2Z574YJ.mjs → chunk-GVYXH7L3.mjs} +1 -1
- package/dist/{chunk-7WV6OWRZ.mjs → chunk-RPSLW2WB.mjs} +377 -61
- package/dist/{chunk-ZI4JD3RU.mjs → chunk-TSE33S3X.mjs} +144 -34
- package/dist/cjs/d5-testing-library.cjs +3442 -188
- package/dist/cjs/d5-testing-library.d.ts +74 -3
- package/dist/d5-testing-library.d.mts +74 -3
- package/dist/d5-testing-library.legacy-esm.js +2841 -7
- package/dist/d5-testing-library.mjs +2841 -7
- package/package.json +12 -12
- package/dist/FormEdit-377LRKDA.mjs +0 -7
- package/dist/ListForm-M2NWQRYX.mjs +0 -7
- package/dist/TreeView-SI5MHDCO.mjs +0 -8
|
@@ -25,6 +25,7 @@ declare abstract class AbstractElement {
|
|
|
25
25
|
getAttribute(attr: string): Promise<string>;
|
|
26
26
|
getClasses(): Promise<string>;
|
|
27
27
|
getDataTestId(): Promise<string>;
|
|
28
|
+
getDataDateMode(): Promise<string>;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
declare abstract class AbstractPage extends AbstractElement {
|
|
@@ -61,6 +62,7 @@ declare const byTestIdCssSelector: (testId: string, element?: string) => string;
|
|
|
61
62
|
*/
|
|
62
63
|
declare const byTestId: (testId: string, element?: string) => By;
|
|
63
64
|
declare const readonlyLocator = "readonly";
|
|
65
|
+
declare const disabledLocator = "disabled";
|
|
64
66
|
|
|
65
67
|
/**
|
|
66
68
|
* Creates a WebDriver instance for the specified browser.
|
|
@@ -132,6 +134,7 @@ interface Editor {
|
|
|
132
134
|
remove?(itemText: string): Promise<void>;
|
|
133
135
|
clear?(): Promise<void>;
|
|
134
136
|
isReadonly?(): Promise<boolean>;
|
|
137
|
+
isDisabled?(): Promise<boolean>;
|
|
135
138
|
}
|
|
136
139
|
declare enum ControlClass {
|
|
137
140
|
Text = "text-control",
|
|
@@ -157,6 +160,7 @@ declare abstract class AbstractElementWithParent extends AbstractElement {
|
|
|
157
160
|
constructor(parentCssSelector: string, elementCssSelector: string, driver: WebDriver);
|
|
158
161
|
protected getFullCssSelector(): string;
|
|
159
162
|
isReadonly(): Promise<boolean>;
|
|
163
|
+
isDisabled(): Promise<boolean>;
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
declare abstract class AbstractDXEditorWithInput extends AbstractElementWithParent implements Editor {
|
|
@@ -250,7 +254,7 @@ interface Button {
|
|
|
250
254
|
isDisabled(): Promise<boolean>;
|
|
251
255
|
isDisplayed(): Promise<boolean>;
|
|
252
256
|
getTitle(): Promise<string>;
|
|
253
|
-
isPressed(): Promise<boolean>;
|
|
257
|
+
isPressed?(): Promise<boolean>;
|
|
254
258
|
}
|
|
255
259
|
declare abstract class AbstractButton extends AbstractElementWithParent implements Button {
|
|
256
260
|
protected constructor(parentCssSelector: string, elementCssSelector: string, driver: WebDriver);
|
|
@@ -347,6 +351,7 @@ declare abstract class Form extends AbstractForm {
|
|
|
347
351
|
protected popupContainerCssSelector: string;
|
|
348
352
|
protected constructor(driver: WebDriver);
|
|
349
353
|
protected isModal(): Promise<boolean>;
|
|
354
|
+
protected isFullScreen(): Promise<boolean>;
|
|
350
355
|
/**
|
|
351
356
|
* Получение заголовка на формы
|
|
352
357
|
* @example
|
|
@@ -412,6 +417,13 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
|
|
|
412
417
|
* expect(await formEdit.field('TextFld').isReadonly()).toBe(false);
|
|
413
418
|
*/
|
|
414
419
|
isReadonly(): Promise<boolean>;
|
|
420
|
+
/**
|
|
421
|
+
* Возвращает значение true|false в зависимости isDisabled поле или нет
|
|
422
|
+
* @example
|
|
423
|
+
* expect(await formEdit.field('NumberFld').isDisabled()).toBe(true);
|
|
424
|
+
* expect(await formEdit.field('TextFld').isDisabled()).toBe(false);
|
|
425
|
+
*/
|
|
426
|
+
isDisabled(): Promise<boolean>;
|
|
415
427
|
/**
|
|
416
428
|
* Возвращает значение true|false в зависимости isDisplayed поле или нет
|
|
417
429
|
* @example
|
|
@@ -534,7 +546,7 @@ declare class Cell extends AbstractElementWithParent {
|
|
|
534
546
|
private getNumberValue;
|
|
535
547
|
private getDateValue;
|
|
536
548
|
getElement(): Promise<WebElement>;
|
|
537
|
-
getValue(): Promise<string | number | 1 | 0 | string[] | Date>;
|
|
549
|
+
getValue(): Promise<string | number | 1 | 0 | string[] | Date | Date[]>;
|
|
538
550
|
getIndex(): number;
|
|
539
551
|
}
|
|
540
552
|
|
|
@@ -655,6 +667,7 @@ declare class Table extends AbstractElementWithParent {
|
|
|
655
667
|
* @param indexes починається з 0
|
|
656
668
|
*/
|
|
657
669
|
selectRowsByIndexes(indexes: number[]): Promise<void>;
|
|
670
|
+
protected getRowElements(timeout?: number): Promise<selenium_webdriver.WebElement[]>;
|
|
658
671
|
getRows(): Promise<Row[]>;
|
|
659
672
|
getColumns(): Promise<Column[]>;
|
|
660
673
|
element(): Promise<selenium_webdriver.WebElement>;
|
|
@@ -688,6 +701,54 @@ declare class Table extends AbstractElementWithParent {
|
|
|
688
701
|
* await form.contextMenu('FieldName', 3).clickButton(['Group', 'ButtonInGroup']);
|
|
689
702
|
*/
|
|
690
703
|
contextMenu(fieldName: string, rowIndex?: number): ContextMenu;
|
|
704
|
+
/**
|
|
705
|
+
* Отримує значення комірки таблиці за ім'ям комірки та індексом рядка.
|
|
706
|
+
*
|
|
707
|
+
* @param {string} cellName - Ім'я комірки (поля) в таблиці
|
|
708
|
+
* @param {number} rowIndex - Індекс рядка (починається з 0)
|
|
709
|
+
* @throws {Error} Викидає помилку, якщо rowIndex не вказано
|
|
710
|
+
* @returns {Promise<string>} Повертає значення комірки
|
|
711
|
+
*
|
|
712
|
+
* @example
|
|
713
|
+
* const table = new Table(driver);
|
|
714
|
+
*
|
|
715
|
+
* // Отримання значення комірки 'Name' в першому рядку (індекс 0)
|
|
716
|
+
* const cellValue = await table.getCellValueByCellName('Name', 0);
|
|
717
|
+
* expect(cellValue).toBe('Очікуване значення');
|
|
718
|
+
*/
|
|
719
|
+
getCellValueByCellName(cellName: string, rowIndex: number): Promise<string | number | string[] | Date | Date[]>;
|
|
720
|
+
/**
|
|
721
|
+
* Перевіряє, чи є таблиця порожньою (не містить жодного рядка з даними).
|
|
722
|
+
*
|
|
723
|
+
* @returns {Promise<boolean>} Повертає true, якщо таблиця порожня, false - якщо містить рядки
|
|
724
|
+
*
|
|
725
|
+
* @example
|
|
726
|
+
* const table = new Table(driver);
|
|
727
|
+
*
|
|
728
|
+
* // Перевірка чи порожня таблиця
|
|
729
|
+
* const empty = await table.isEmpty();
|
|
730
|
+
* expect(empty).toBe(true);
|
|
731
|
+
*/
|
|
732
|
+
isEmpty(): Promise<boolean>;
|
|
733
|
+
/**
|
|
734
|
+
* Очікує, поки кількість рядків у таблиці не стане рівною заданому значенню.
|
|
735
|
+
* Використовується для синхронізації тестів з динамічним завантаженням даних.
|
|
736
|
+
*
|
|
737
|
+
* @param {number} count - Очікувана кількість рядків у таблиці
|
|
738
|
+
* @returns {Promise<void>} Повертає Promise, який виконується, коли кількість рядків відповідає очікуваній
|
|
739
|
+
* @throws {Error} Викидає помилку, якщо очікування перевищує тайм-аут
|
|
740
|
+
*
|
|
741
|
+
* @example
|
|
742
|
+
* const table = new Table(driver);
|
|
743
|
+
*
|
|
744
|
+
* // Очікування, поки таблиця не стане порожньою
|
|
745
|
+
* await table.waitRowsCount(0);
|
|
746
|
+
*
|
|
747
|
+
* // Очікування, поки в таблиці не з'явиться 5 рядків
|
|
748
|
+
* await table.waitRowsCount(5);
|
|
749
|
+
* console.log('Таблиця містить 5 рядків');
|
|
750
|
+
*/
|
|
751
|
+
waitRowsCount(count: number): Promise<void>;
|
|
691
752
|
}
|
|
692
753
|
|
|
693
754
|
declare class FormFilterField extends AbstractEditor {
|
|
@@ -749,6 +810,8 @@ declare class FormFilterField extends AbstractEditor {
|
|
|
749
810
|
* expect(await form.formFilter('NumberFld').getIsBlank()).toBe(false);
|
|
750
811
|
*/
|
|
751
812
|
getIsBlank(): Promise<boolean>;
|
|
813
|
+
isReadonly(): Promise<boolean>;
|
|
814
|
+
isDisabled(): Promise<boolean>;
|
|
752
815
|
}
|
|
753
816
|
|
|
754
817
|
declare class PanelFilterField extends AbstractEditor {
|
|
@@ -810,6 +873,8 @@ declare class PanelFilterField extends AbstractEditor {
|
|
|
810
873
|
* expect(await form.filterPanel.filterField('NumberFld').getIsBlank()).toBe(false);
|
|
811
874
|
*/
|
|
812
875
|
getIsBlank(): Promise<boolean>;
|
|
876
|
+
isReadonly(): Promise<boolean>;
|
|
877
|
+
isDisabled(): Promise<boolean>;
|
|
813
878
|
}
|
|
814
879
|
|
|
815
880
|
declare class FilterPanel extends AbstractElement {
|
|
@@ -836,6 +901,8 @@ declare class HeaderFilterField extends AbstractEditor {
|
|
|
836
901
|
setValue(value: any): Promise<void>;
|
|
837
902
|
clear(): Promise<void>;
|
|
838
903
|
remove(itemText: string): Promise<void>;
|
|
904
|
+
isReadonly(): Promise<boolean>;
|
|
905
|
+
isDisabled(): Promise<boolean>;
|
|
839
906
|
}
|
|
840
907
|
|
|
841
908
|
interface IFilterOperations {
|
|
@@ -918,6 +985,8 @@ declare class ColumnFilter extends AbstractElement {
|
|
|
918
985
|
* expect(await form.columnFilter('NumberFld').getIsBlank()).toBe(false);
|
|
919
986
|
*/
|
|
920
987
|
getIsBlank(): Promise<boolean>;
|
|
988
|
+
isReadonly(): Promise<boolean>;
|
|
989
|
+
isDisabled(): Promise<boolean>;
|
|
921
990
|
}
|
|
922
991
|
|
|
923
992
|
declare class ListForm extends Form {
|
|
@@ -995,4 +1064,6 @@ declare class Dialog extends AbstractElement {
|
|
|
995
1064
|
button(text: string): DialogButton;
|
|
996
1065
|
}
|
|
997
1066
|
|
|
998
|
-
|
|
1067
|
+
declare function ApiRequest(objectName: string, operation: string): any;
|
|
1068
|
+
|
|
1069
|
+
export { AbstractPage, ApiRequest, ControlClass, Dialog, type Editor, FilterPanel, FormEdit, FormField, FormFilterField, ListForm, LoginPage, NumberEditor, PanelFilterField, ReportForm, SubsystemsPanel, TextEditor, TreeView, byTestId, byTestIdCssSelector, click, config, contextMenu, createDriver, disabledLocator, editorFactory, elementIsNotPresent, readonlyLocator, signIn, safeWait as wait, waitElementIsClickable, waitElementIsVisible };
|
|
@@ -25,6 +25,7 @@ declare abstract class AbstractElement {
|
|
|
25
25
|
getAttribute(attr: string): Promise<string>;
|
|
26
26
|
getClasses(): Promise<string>;
|
|
27
27
|
getDataTestId(): Promise<string>;
|
|
28
|
+
getDataDateMode(): Promise<string>;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
declare abstract class AbstractPage extends AbstractElement {
|
|
@@ -61,6 +62,7 @@ declare const byTestIdCssSelector: (testId: string, element?: string) => string;
|
|
|
61
62
|
*/
|
|
62
63
|
declare const byTestId: (testId: string, element?: string) => By;
|
|
63
64
|
declare const readonlyLocator = "readonly";
|
|
65
|
+
declare const disabledLocator = "disabled";
|
|
64
66
|
|
|
65
67
|
/**
|
|
66
68
|
* Creates a WebDriver instance for the specified browser.
|
|
@@ -132,6 +134,7 @@ interface Editor {
|
|
|
132
134
|
remove?(itemText: string): Promise<void>;
|
|
133
135
|
clear?(): Promise<void>;
|
|
134
136
|
isReadonly?(): Promise<boolean>;
|
|
137
|
+
isDisabled?(): Promise<boolean>;
|
|
135
138
|
}
|
|
136
139
|
declare enum ControlClass {
|
|
137
140
|
Text = "text-control",
|
|
@@ -157,6 +160,7 @@ declare abstract class AbstractElementWithParent extends AbstractElement {
|
|
|
157
160
|
constructor(parentCssSelector: string, elementCssSelector: string, driver: WebDriver);
|
|
158
161
|
protected getFullCssSelector(): string;
|
|
159
162
|
isReadonly(): Promise<boolean>;
|
|
163
|
+
isDisabled(): Promise<boolean>;
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
declare abstract class AbstractDXEditorWithInput extends AbstractElementWithParent implements Editor {
|
|
@@ -250,7 +254,7 @@ interface Button {
|
|
|
250
254
|
isDisabled(): Promise<boolean>;
|
|
251
255
|
isDisplayed(): Promise<boolean>;
|
|
252
256
|
getTitle(): Promise<string>;
|
|
253
|
-
isPressed(): Promise<boolean>;
|
|
257
|
+
isPressed?(): Promise<boolean>;
|
|
254
258
|
}
|
|
255
259
|
declare abstract class AbstractButton extends AbstractElementWithParent implements Button {
|
|
256
260
|
protected constructor(parentCssSelector: string, elementCssSelector: string, driver: WebDriver);
|
|
@@ -347,6 +351,7 @@ declare abstract class Form extends AbstractForm {
|
|
|
347
351
|
protected popupContainerCssSelector: string;
|
|
348
352
|
protected constructor(driver: WebDriver);
|
|
349
353
|
protected isModal(): Promise<boolean>;
|
|
354
|
+
protected isFullScreen(): Promise<boolean>;
|
|
350
355
|
/**
|
|
351
356
|
* Получение заголовка на формы
|
|
352
357
|
* @example
|
|
@@ -412,6 +417,13 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
|
|
|
412
417
|
* expect(await formEdit.field('TextFld').isReadonly()).toBe(false);
|
|
413
418
|
*/
|
|
414
419
|
isReadonly(): Promise<boolean>;
|
|
420
|
+
/**
|
|
421
|
+
* Возвращает значение true|false в зависимости isDisabled поле или нет
|
|
422
|
+
* @example
|
|
423
|
+
* expect(await formEdit.field('NumberFld').isDisabled()).toBe(true);
|
|
424
|
+
* expect(await formEdit.field('TextFld').isDisabled()).toBe(false);
|
|
425
|
+
*/
|
|
426
|
+
isDisabled(): Promise<boolean>;
|
|
415
427
|
/**
|
|
416
428
|
* Возвращает значение true|false в зависимости isDisplayed поле или нет
|
|
417
429
|
* @example
|
|
@@ -534,7 +546,7 @@ declare class Cell extends AbstractElementWithParent {
|
|
|
534
546
|
private getNumberValue;
|
|
535
547
|
private getDateValue;
|
|
536
548
|
getElement(): Promise<WebElement>;
|
|
537
|
-
getValue(): Promise<string | number | 1 | 0 | string[] | Date>;
|
|
549
|
+
getValue(): Promise<string | number | 1 | 0 | string[] | Date | Date[]>;
|
|
538
550
|
getIndex(): number;
|
|
539
551
|
}
|
|
540
552
|
|
|
@@ -655,6 +667,7 @@ declare class Table extends AbstractElementWithParent {
|
|
|
655
667
|
* @param indexes починається з 0
|
|
656
668
|
*/
|
|
657
669
|
selectRowsByIndexes(indexes: number[]): Promise<void>;
|
|
670
|
+
protected getRowElements(timeout?: number): Promise<selenium_webdriver.WebElement[]>;
|
|
658
671
|
getRows(): Promise<Row[]>;
|
|
659
672
|
getColumns(): Promise<Column[]>;
|
|
660
673
|
element(): Promise<selenium_webdriver.WebElement>;
|
|
@@ -688,6 +701,54 @@ declare class Table extends AbstractElementWithParent {
|
|
|
688
701
|
* await form.contextMenu('FieldName', 3).clickButton(['Group', 'ButtonInGroup']);
|
|
689
702
|
*/
|
|
690
703
|
contextMenu(fieldName: string, rowIndex?: number): ContextMenu;
|
|
704
|
+
/**
|
|
705
|
+
* Отримує значення комірки таблиці за ім'ям комірки та індексом рядка.
|
|
706
|
+
*
|
|
707
|
+
* @param {string} cellName - Ім'я комірки (поля) в таблиці
|
|
708
|
+
* @param {number} rowIndex - Індекс рядка (починається з 0)
|
|
709
|
+
* @throws {Error} Викидає помилку, якщо rowIndex не вказано
|
|
710
|
+
* @returns {Promise<string>} Повертає значення комірки
|
|
711
|
+
*
|
|
712
|
+
* @example
|
|
713
|
+
* const table = new Table(driver);
|
|
714
|
+
*
|
|
715
|
+
* // Отримання значення комірки 'Name' в першому рядку (індекс 0)
|
|
716
|
+
* const cellValue = await table.getCellValueByCellName('Name', 0);
|
|
717
|
+
* expect(cellValue).toBe('Очікуване значення');
|
|
718
|
+
*/
|
|
719
|
+
getCellValueByCellName(cellName: string, rowIndex: number): Promise<string | number | string[] | Date | Date[]>;
|
|
720
|
+
/**
|
|
721
|
+
* Перевіряє, чи є таблиця порожньою (не містить жодного рядка з даними).
|
|
722
|
+
*
|
|
723
|
+
* @returns {Promise<boolean>} Повертає true, якщо таблиця порожня, false - якщо містить рядки
|
|
724
|
+
*
|
|
725
|
+
* @example
|
|
726
|
+
* const table = new Table(driver);
|
|
727
|
+
*
|
|
728
|
+
* // Перевірка чи порожня таблиця
|
|
729
|
+
* const empty = await table.isEmpty();
|
|
730
|
+
* expect(empty).toBe(true);
|
|
731
|
+
*/
|
|
732
|
+
isEmpty(): Promise<boolean>;
|
|
733
|
+
/**
|
|
734
|
+
* Очікує, поки кількість рядків у таблиці не стане рівною заданому значенню.
|
|
735
|
+
* Використовується для синхронізації тестів з динамічним завантаженням даних.
|
|
736
|
+
*
|
|
737
|
+
* @param {number} count - Очікувана кількість рядків у таблиці
|
|
738
|
+
* @returns {Promise<void>} Повертає Promise, який виконується, коли кількість рядків відповідає очікуваній
|
|
739
|
+
* @throws {Error} Викидає помилку, якщо очікування перевищує тайм-аут
|
|
740
|
+
*
|
|
741
|
+
* @example
|
|
742
|
+
* const table = new Table(driver);
|
|
743
|
+
*
|
|
744
|
+
* // Очікування, поки таблиця не стане порожньою
|
|
745
|
+
* await table.waitRowsCount(0);
|
|
746
|
+
*
|
|
747
|
+
* // Очікування, поки в таблиці не з'явиться 5 рядків
|
|
748
|
+
* await table.waitRowsCount(5);
|
|
749
|
+
* console.log('Таблиця містить 5 рядків');
|
|
750
|
+
*/
|
|
751
|
+
waitRowsCount(count: number): Promise<void>;
|
|
691
752
|
}
|
|
692
753
|
|
|
693
754
|
declare class FormFilterField extends AbstractEditor {
|
|
@@ -749,6 +810,8 @@ declare class FormFilterField extends AbstractEditor {
|
|
|
749
810
|
* expect(await form.formFilter('NumberFld').getIsBlank()).toBe(false);
|
|
750
811
|
*/
|
|
751
812
|
getIsBlank(): Promise<boolean>;
|
|
813
|
+
isReadonly(): Promise<boolean>;
|
|
814
|
+
isDisabled(): Promise<boolean>;
|
|
752
815
|
}
|
|
753
816
|
|
|
754
817
|
declare class PanelFilterField extends AbstractEditor {
|
|
@@ -810,6 +873,8 @@ declare class PanelFilterField extends AbstractEditor {
|
|
|
810
873
|
* expect(await form.filterPanel.filterField('NumberFld').getIsBlank()).toBe(false);
|
|
811
874
|
*/
|
|
812
875
|
getIsBlank(): Promise<boolean>;
|
|
876
|
+
isReadonly(): Promise<boolean>;
|
|
877
|
+
isDisabled(): Promise<boolean>;
|
|
813
878
|
}
|
|
814
879
|
|
|
815
880
|
declare class FilterPanel extends AbstractElement {
|
|
@@ -836,6 +901,8 @@ declare class HeaderFilterField extends AbstractEditor {
|
|
|
836
901
|
setValue(value: any): Promise<void>;
|
|
837
902
|
clear(): Promise<void>;
|
|
838
903
|
remove(itemText: string): Promise<void>;
|
|
904
|
+
isReadonly(): Promise<boolean>;
|
|
905
|
+
isDisabled(): Promise<boolean>;
|
|
839
906
|
}
|
|
840
907
|
|
|
841
908
|
interface IFilterOperations {
|
|
@@ -918,6 +985,8 @@ declare class ColumnFilter extends AbstractElement {
|
|
|
918
985
|
* expect(await form.columnFilter('NumberFld').getIsBlank()).toBe(false);
|
|
919
986
|
*/
|
|
920
987
|
getIsBlank(): Promise<boolean>;
|
|
988
|
+
isReadonly(): Promise<boolean>;
|
|
989
|
+
isDisabled(): Promise<boolean>;
|
|
921
990
|
}
|
|
922
991
|
|
|
923
992
|
declare class ListForm extends Form {
|
|
@@ -995,4 +1064,6 @@ declare class Dialog extends AbstractElement {
|
|
|
995
1064
|
button(text: string): DialogButton;
|
|
996
1065
|
}
|
|
997
1066
|
|
|
998
|
-
|
|
1067
|
+
declare function ApiRequest(objectName: string, operation: string): any;
|
|
1068
|
+
|
|
1069
|
+
export { AbstractPage, ApiRequest, ControlClass, Dialog, type Editor, FilterPanel, FormEdit, FormField, FormFilterField, ListForm, LoginPage, NumberEditor, PanelFilterField, ReportForm, SubsystemsPanel, TextEditor, TreeView, byTestId, byTestIdCssSelector, click, config, contextMenu, createDriver, disabledLocator, editorFactory, elementIsNotPresent, readonlyLocator, signIn, safeWait as wait, waitElementIsClickable, waitElementIsVisible };
|