@oracle/oraclejet-webdriver 10.1.7
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/LICENSE +21 -0
- package/README.md +16 -0
- package/bin/generate +509 -0
- package/bin/generate-jet +163 -0
- package/bin/templates/baseclass.ts-template +13 -0
- package/bin/templates/class.ts-template +12 -0
- package/bin/templates/element-test.spec.ts-template +28 -0
- package/bin/templates/index.ts-template +27 -0
- package/bin/templates/jetcomponents.json +71 -0
- package/bin/templates/package.json-template +15 -0
- package/bin/templates/tsconfig.json-template +19 -0
- package/elements/OjWebElement.js +232 -0
- package/elements/OjWebElement.js.map +1 -0
- package/elements/OjWebElement.ts +674 -0
- package/elements/index.js +214 -0
- package/elements/index.js.map +1 -0
- package/elements/index.ts +75 -0
- package/elements/oj-accordion/OjAccordion.js +8 -0
- package/elements/oj-accordion/OjAccordion.js.map +1 -0
- package/elements/oj-accordion/OjAccordion.ts +12 -0
- package/elements/oj-accordion/OjAccordionBase.js +20 -0
- package/elements/oj-accordion/OjAccordionBase.js.map +1 -0
- package/elements/oj-accordion/OjAccordionBase.ts +48 -0
- package/elements/oj-accordion/index.js +17 -0
- package/elements/oj-accordion/index.js.map +1 -0
- package/elements/oj-accordion/index.ts +27 -0
- package/elements/oj-button/OjButton.js +20 -0
- package/elements/oj-button/OjButton.js.map +1 -0
- package/elements/oj-button/OjButton.ts +35 -0
- package/elements/oj-button/OjButtonBase.js +23 -0
- package/elements/oj-button/OjButtonBase.js.map +1 -0
- package/elements/oj-button/OjButtonBase.ts +57 -0
- package/elements/oj-button/index.js +17 -0
- package/elements/oj-button/index.js.map +1 -0
- package/elements/oj-button/index.ts +27 -0
- package/elements/oj-buttonset-many/OjButtonsetMany.js +8 -0
- package/elements/oj-buttonset-many/OjButtonsetMany.js.map +1 -0
- package/elements/oj-buttonset-many/OjButtonsetMany.ts +11 -0
- package/elements/oj-buttonset-many/OjButtonsetManyBase.js +35 -0
- package/elements/oj-buttonset-many/OjButtonsetManyBase.js.map +1 -0
- package/elements/oj-buttonset-many/OjButtonsetManyBase.ts +93 -0
- package/elements/oj-buttonset-many/index.js +17 -0
- package/elements/oj-buttonset-many/index.js.map +1 -0
- package/elements/oj-buttonset-many/index.ts +27 -0
- package/elements/oj-buttonset-one/OjButtonsetOne.js +8 -0
- package/elements/oj-buttonset-one/OjButtonsetOne.js.map +1 -0
- package/elements/oj-buttonset-one/OjButtonsetOne.ts +11 -0
- package/elements/oj-buttonset-one/OjButtonsetOneBase.js +35 -0
- package/elements/oj-buttonset-one/OjButtonsetOneBase.js.map +1 -0
- package/elements/oj-buttonset-one/OjButtonsetOneBase.ts +93 -0
- package/elements/oj-buttonset-one/index.js +17 -0
- package/elements/oj-buttonset-one/index.js.map +1 -0
- package/elements/oj-buttonset-one/index.ts +27 -0
- package/elements/oj-chart/OjChart.js +8 -0
- package/elements/oj-chart/OjChart.js.map +1 -0
- package/elements/oj-chart/OjChart.ts +12 -0
- package/elements/oj-chart/OjChartBase.js +170 -0
- package/elements/oj-chart/OjChartBase.js.map +1 -0
- package/elements/oj-chart/OjChartBase.ts +2468 -0
- package/elements/oj-chart/index.js +17 -0
- package/elements/oj-chart/index.js.map +1 -0
- package/elements/oj-chart/index.ts +27 -0
- package/elements/oj-checkboxset/OjCheckboxset.js +39 -0
- package/elements/oj-checkboxset/OjCheckboxset.js.map +1 -0
- package/elements/oj-checkboxset/OjCheckboxset.ts +74 -0
- package/elements/oj-checkboxset/OjCheckboxsetBase.js +68 -0
- package/elements/oj-checkboxset/OjCheckboxsetBase.js.map +1 -0
- package/elements/oj-checkboxset/OjCheckboxsetBase.ts +262 -0
- package/elements/oj-checkboxset/index.js +17 -0
- package/elements/oj-checkboxset/index.js.map +1 -0
- package/elements/oj-checkboxset/index.ts +27 -0
- package/elements/oj-collapsible/OjCollapsible.js +23 -0
- package/elements/oj-collapsible/OjCollapsible.js.map +1 -0
- package/elements/oj-collapsible/OjCollapsible.ts +36 -0
- package/elements/oj-collapsible/OjCollapsibleBase.js +23 -0
- package/elements/oj-collapsible/OjCollapsibleBase.js.map +1 -0
- package/elements/oj-collapsible/OjCollapsibleBase.ts +57 -0
- package/elements/oj-collapsible/index.js +17 -0
- package/elements/oj-collapsible/index.js.map +1 -0
- package/elements/oj-collapsible/index.ts +27 -0
- package/elements/oj-color-palette/OjColorPalette.js +8 -0
- package/elements/oj-color-palette/OjColorPalette.js.map +1 -0
- package/elements/oj-color-palette/OjColorPalette.ts +12 -0
- package/elements/oj-color-palette/OjColorPaletteBase.js +65 -0
- package/elements/oj-color-palette/OjColorPaletteBase.js.map +1 -0
- package/elements/oj-color-palette/OjColorPaletteBase.ts +235 -0
- package/elements/oj-color-palette/index.js +17 -0
- package/elements/oj-color-palette/index.js.map +1 -0
- package/elements/oj-color-palette/index.ts +27 -0
- package/elements/oj-color-spectrum/OjColorSpectrum.js +8 -0
- package/elements/oj-color-spectrum/OjColorSpectrum.js.map +1 -0
- package/elements/oj-color-spectrum/OjColorSpectrum.ts +12 -0
- package/elements/oj-color-spectrum/OjColorSpectrumBase.js +56 -0
- package/elements/oj-color-spectrum/OjColorSpectrumBase.js.map +1 -0
- package/elements/oj-color-spectrum/OjColorSpectrumBase.ts +210 -0
- package/elements/oj-color-spectrum/index.js +17 -0
- package/elements/oj-color-spectrum/index.js.map +1 -0
- package/elements/oj-color-spectrum/index.ts +27 -0
- package/elements/oj-combobox-many/OjComboboxMany.js +51 -0
- package/elements/oj-combobox-many/OjComboboxMany.js.map +1 -0
- package/elements/oj-combobox-many/OjComboboxMany.ts +80 -0
- package/elements/oj-combobox-many/OjComboboxManyBase.js +98 -0
- package/elements/oj-combobox-many/OjComboboxManyBase.js.map +1 -0
- package/elements/oj-combobox-many/OjComboboxManyBase.ts +428 -0
- package/elements/oj-combobox-many/index.js +17 -0
- package/elements/oj-combobox-many/index.js.map +1 -0
- package/elements/oj-combobox-many/index.ts +27 -0
- package/elements/oj-combobox-one/OjComboboxOne.js +49 -0
- package/elements/oj-combobox-one/OjComboboxOne.js.map +1 -0
- package/elements/oj-combobox-one/OjComboboxOne.ts +74 -0
- package/elements/oj-combobox-one/OjComboboxOneBase.js +101 -0
- package/elements/oj-combobox-one/OjComboboxOneBase.js.map +1 -0
- package/elements/oj-combobox-one/OjComboboxOneBase.ts +437 -0
- package/elements/oj-combobox-one/index.js +17 -0
- package/elements/oj-combobox-one/index.js.map +1 -0
- package/elements/oj-combobox-one/index.ts +27 -0
- package/elements/oj-conveyor-belt/OjConveyorBelt.js +16 -0
- package/elements/oj-conveyor-belt/OjConveyorBelt.js.map +1 -0
- package/elements/oj-conveyor-belt/OjConveyorBelt.ts +30 -0
- package/elements/oj-conveyor-belt/OjConveyorBeltBase.js +29 -0
- package/elements/oj-conveyor-belt/OjConveyorBeltBase.js.map +1 -0
- package/elements/oj-conveyor-belt/OjConveyorBeltBase.ts +87 -0
- package/elements/oj-conveyor-belt/index.js +17 -0
- package/elements/oj-conveyor-belt/index.js.map +1 -0
- package/elements/oj-conveyor-belt/index.ts +27 -0
- package/elements/oj-data-grid/OjDataGrid.js +198 -0
- package/elements/oj-data-grid/OjDataGrid.js.map +1 -0
- package/elements/oj-data-grid/OjDataGrid.ts +279 -0
- package/elements/oj-data-grid/OjDataGridBase.js +65 -0
- package/elements/oj-data-grid/OjDataGridBase.js.map +1 -0
- package/elements/oj-data-grid/OjDataGridBase.ts +705 -0
- package/elements/oj-data-grid/index.js +17 -0
- package/elements/oj-data-grid/index.js.map +1 -0
- package/elements/oj-data-grid/index.ts +27 -0
- package/elements/oj-date-picker/OjDatePicker.js +8 -0
- package/elements/oj-date-picker/OjDatePicker.js.map +1 -0
- package/elements/oj-date-picker/OjDatePicker.ts +12 -0
- package/elements/oj-date-picker/OjDatePickerBase.js +104 -0
- package/elements/oj-date-picker/OjDatePickerBase.js.map +1 -0
- package/elements/oj-date-picker/OjDatePickerBase.ts +536 -0
- package/elements/oj-date-picker/index.js +17 -0
- package/elements/oj-date-picker/index.js.map +1 -0
- package/elements/oj-date-picker/index.ts +27 -0
- package/elements/oj-date-time-picker/OjDateTimePicker.js +8 -0
- package/elements/oj-date-time-picker/OjDateTimePicker.js.map +1 -0
- package/elements/oj-date-time-picker/OjDateTimePicker.ts +32 -0
- package/elements/oj-date-time-picker/OjDateTimePickerBase.js +107 -0
- package/elements/oj-date-time-picker/OjDateTimePickerBase.js.map +1 -0
- package/elements/oj-date-time-picker/OjDateTimePickerBase.ts +567 -0
- package/elements/oj-date-time-picker/index.js +17 -0
- package/elements/oj-date-time-picker/index.js.map +1 -0
- package/elements/oj-date-time-picker/index.ts +27 -0
- package/elements/oj-diagram/OjDiagram.js +8 -0
- package/elements/oj-diagram/OjDiagram.js.map +1 -0
- package/elements/oj-diagram/OjDiagram.ts +12 -0
- package/elements/oj-diagram/OjDiagramBase.js +128 -0
- package/elements/oj-diagram/OjDiagramBase.js.map +1 -0
- package/elements/oj-diagram/OjDiagramBase.ts +740 -0
- package/elements/oj-diagram/index.js +17 -0
- package/elements/oj-diagram/index.js.map +1 -0
- package/elements/oj-diagram/index.ts +27 -0
- package/elements/oj-dialog/OjDialog.js +13 -0
- package/elements/oj-dialog/OjDialog.js.map +1 -0
- package/elements/oj-dialog/OjDialog.ts +21 -0
- package/elements/oj-dialog/OjDialogBase.js +32 -0
- package/elements/oj-dialog/OjDialogBase.js.map +1 -0
- package/elements/oj-dialog/OjDialogBase.ts +144 -0
- package/elements/oj-dialog/index.js +17 -0
- package/elements/oj-dialog/index.js.map +1 -0
- package/elements/oj-dialog/index.ts +27 -0
- package/elements/oj-file-picker/OjFilePicker.js +36 -0
- package/elements/oj-file-picker/OjFilePicker.js.map +1 -0
- package/elements/oj-file-picker/OjFilePicker.ts +49 -0
- package/elements/oj-file-picker/OjFilePickerBase.js +29 -0
- package/elements/oj-file-picker/OjFilePickerBase.js.map +1 -0
- package/elements/oj-file-picker/OjFilePickerBase.ts +75 -0
- package/elements/oj-file-picker/index.js +17 -0
- package/elements/oj-file-picker/index.js.map +1 -0
- package/elements/oj-file-picker/index.ts +27 -0
- package/elements/oj-film-strip/OjFilmStrip.js +8 -0
- package/elements/oj-film-strip/OjFilmStrip.js.map +1 -0
- package/elements/oj-film-strip/OjFilmStrip.ts +12 -0
- package/elements/oj-film-strip/OjFilmStripBase.js +32 -0
- package/elements/oj-film-strip/OjFilmStripBase.js.map +1 -0
- package/elements/oj-film-strip/OjFilmStripBase.ts +118 -0
- package/elements/oj-film-strip/index.js +17 -0
- package/elements/oj-film-strip/index.js.map +1 -0
- package/elements/oj-film-strip/index.ts +27 -0
- package/elements/oj-gantt/OjGantt.js +8 -0
- package/elements/oj-gantt/OjGantt.js.map +1 -0
- package/elements/oj-gantt/OjGantt.ts +12 -0
- package/elements/oj-gantt/OjGanttBase.js +98 -0
- package/elements/oj-gantt/OjGanttBase.js.map +1 -0
- package/elements/oj-gantt/OjGanttBase.ts +996 -0
- package/elements/oj-gantt/index.js +17 -0
- package/elements/oj-gantt/index.js.map +1 -0
- package/elements/oj-gantt/index.ts +27 -0
- package/elements/oj-indexer/OjIndexer.js +8 -0
- package/elements/oj-indexer/OjIndexer.js.map +1 -0
- package/elements/oj-indexer/OjIndexer.ts +12 -0
- package/elements/oj-indexer/OjIndexerBase.js +14 -0
- package/elements/oj-indexer/OjIndexerBase.js.map +1 -0
- package/elements/oj-indexer/OjIndexerBase.ts +62 -0
- package/elements/oj-indexer/index.js +17 -0
- package/elements/oj-indexer/index.js.map +1 -0
- package/elements/oj-indexer/index.ts +27 -0
- package/elements/oj-input-date/OjInputDate.js +10 -0
- package/elements/oj-input-date/OjInputDate.js.map +1 -0
- package/elements/oj-input-date/OjInputDate.ts +14 -0
- package/elements/oj-input-date/OjInputDateBase.js +107 -0
- package/elements/oj-input-date/OjInputDateBase.js.map +1 -0
- package/elements/oj-input-date/OjInputDateBase.ts +545 -0
- package/elements/oj-input-date/index.js +17 -0
- package/elements/oj-input-date/index.js.map +1 -0
- package/elements/oj-input-date/index.ts +27 -0
- package/elements/oj-input-date-time/OjInputDateTime.js +10 -0
- package/elements/oj-input-date-time/OjInputDateTime.js.map +1 -0
- package/elements/oj-input-date-time/OjInputDateTime.ts +14 -0
- package/elements/oj-input-date-time/OjInputDateTimeBase.js +110 -0
- package/elements/oj-input-date-time/OjInputDateTimeBase.js.map +1 -0
- package/elements/oj-input-date-time/OjInputDateTimeBase.ts +576 -0
- package/elements/oj-input-date-time/index.js +17 -0
- package/elements/oj-input-date-time/index.js.map +1 -0
- package/elements/oj-input-date-time/index.ts +27 -0
- package/elements/oj-input-number/OjInputNumber.js +10 -0
- package/elements/oj-input-number/OjInputNumber.js.map +1 -0
- package/elements/oj-input-number/OjInputNumber.ts +14 -0
- package/elements/oj-input-number/OjInputNumberBase.js +98 -0
- package/elements/oj-input-number/OjInputNumberBase.js.map +1 -0
- package/elements/oj-input-number/OjInputNumberBase.ts +406 -0
- package/elements/oj-input-number/index.js +17 -0
- package/elements/oj-input-number/index.js.map +1 -0
- package/elements/oj-input-number/index.ts +27 -0
- package/elements/oj-input-password/OjInputPassword.js +10 -0
- package/elements/oj-input-password/OjInputPassword.js.map +1 -0
- package/elements/oj-input-password/OjInputPassword.ts +14 -0
- package/elements/oj-input-password/OjInputPasswordBase.js +83 -0
- package/elements/oj-input-password/OjInputPasswordBase.js.map +1 -0
- package/elements/oj-input-password/OjInputPasswordBase.ts +323 -0
- package/elements/oj-input-password/index.js +17 -0
- package/elements/oj-input-password/index.js.map +1 -0
- package/elements/oj-input-password/index.ts +27 -0
- package/elements/oj-input-search/OjInputSearch.js +41 -0
- package/elements/oj-input-search/OjInputSearch.js.map +1 -0
- package/elements/oj-input-search/OjInputSearch.ts +64 -0
- package/elements/oj-input-search/OjInputSearchBase.js +26 -0
- package/elements/oj-input-search/OjInputSearchBase.js.map +1 -0
- package/elements/oj-input-search/OjInputSearchBase.ts +66 -0
- package/elements/oj-input-search/index.js +17 -0
- package/elements/oj-input-search/index.js.map +1 -0
- package/elements/oj-input-search/index.ts +27 -0
- package/elements/oj-input-text/OjInputText.js +10 -0
- package/elements/oj-input-text/OjInputText.js.map +1 -0
- package/elements/oj-input-text/OjInputText.ts +15 -0
- package/elements/oj-input-text/OjInputTextBase.js +95 -0
- package/elements/oj-input-text/OjInputTextBase.js.map +1 -0
- package/elements/oj-input-text/OjInputTextBase.ts +361 -0
- package/elements/oj-input-text/index.js +17 -0
- package/elements/oj-input-text/index.js.map +1 -0
- package/elements/oj-input-text/index.ts +27 -0
- package/elements/oj-input-time/OjInputTime.js +10 -0
- package/elements/oj-input-time/OjInputTime.js.map +1 -0
- package/elements/oj-input-time/OjInputTime.ts +14 -0
- package/elements/oj-input-time/OjInputTimeBase.js +101 -0
- package/elements/oj-input-time/OjInputTimeBase.js.map +1 -0
- package/elements/oj-input-time/OjInputTimeBase.ts +477 -0
- package/elements/oj-input-time/index.js +17 -0
- package/elements/oj-input-time/index.js.map +1 -0
- package/elements/oj-input-time/index.ts +27 -0
- package/elements/oj-label/OjLabel.js +8 -0
- package/elements/oj-label/OjLabel.js.map +1 -0
- package/elements/oj-label/OjLabel.ts +12 -0
- package/elements/oj-label/OjLabelBase.js +23 -0
- package/elements/oj-label/OjLabelBase.js.map +1 -0
- package/elements/oj-label/OjLabelBase.ts +79 -0
- package/elements/oj-label/index.js +17 -0
- package/elements/oj-label/index.js.map +1 -0
- package/elements/oj-label/index.ts +27 -0
- package/elements/oj-led-gauge/OjLedGauge.js +8 -0
- package/elements/oj-led-gauge/OjLedGauge.js.map +1 -0
- package/elements/oj-led-gauge/OjLedGauge.ts +12 -0
- package/elements/oj-led-gauge/OjLedGaugeBase.js +62 -0
- package/elements/oj-led-gauge/OjLedGaugeBase.js.map +1 -0
- package/elements/oj-led-gauge/OjLedGaugeBase.ts +302 -0
- package/elements/oj-led-gauge/index.js +17 -0
- package/elements/oj-led-gauge/index.js.map +1 -0
- package/elements/oj-led-gauge/index.ts +27 -0
- package/elements/oj-legend/OjLegend.js +8 -0
- package/elements/oj-legend/OjLegend.js.map +1 -0
- package/elements/oj-legend/OjLegend.ts +12 -0
- package/elements/oj-legend/OjLegendBase.js +74 -0
- package/elements/oj-legend/OjLegendBase.js.map +1 -0
- package/elements/oj-legend/OjLegendBase.ts +324 -0
- package/elements/oj-legend/index.js +17 -0
- package/elements/oj-legend/index.js.map +1 -0
- package/elements/oj-legend/index.ts +27 -0
- package/elements/oj-list-view/OjListView.js +25 -0
- package/elements/oj-list-view/OjListView.js.map +1 -0
- package/elements/oj-list-view/OjListView.ts +36 -0
- package/elements/oj-list-view/OjListViewBase.js +71 -0
- package/elements/oj-list-view/OjListViewBase.js.map +1 -0
- package/elements/oj-list-view/OjListViewBase.ts +355 -0
- package/elements/oj-list-view/index.js +17 -0
- package/elements/oj-list-view/index.js.map +1 -0
- package/elements/oj-list-view/index.ts +27 -0
- package/elements/oj-masonry-layout/OjMasonryLayout.js +8 -0
- package/elements/oj-masonry-layout/OjMasonryLayout.js.map +1 -0
- package/elements/oj-masonry-layout/OjMasonryLayout.ts +12 -0
- package/elements/oj-masonry-layout/OjMasonryLayoutBase.js +14 -0
- package/elements/oj-masonry-layout/OjMasonryLayoutBase.js.map +1 -0
- package/elements/oj-masonry-layout/OjMasonryLayoutBase.ts +46 -0
- package/elements/oj-masonry-layout/index.js +17 -0
- package/elements/oj-masonry-layout/index.js.map +1 -0
- package/elements/oj-masonry-layout/index.ts +27 -0
- package/elements/oj-menu/OjMenu.js +28 -0
- package/elements/oj-menu/OjMenu.js.map +1 -0
- package/elements/oj-menu/OjMenu.ts +42 -0
- package/elements/oj-menu/OjMenuBase.js +17 -0
- package/elements/oj-menu/OjMenuBase.js.map +1 -0
- package/elements/oj-menu/OjMenuBase.ts +121 -0
- package/elements/oj-menu/index.js +17 -0
- package/elements/oj-menu/index.js.map +1 -0
- package/elements/oj-menu/index.ts +27 -0
- package/elements/oj-menu-button/OjMenuButton.js +14 -0
- package/elements/oj-menu-button/OjMenuButton.js.map +1 -0
- package/elements/oj-menu-button/OjMenuButton.ts +20 -0
- package/elements/oj-menu-button/OjMenuButtonBase.js +20 -0
- package/elements/oj-menu-button/OjMenuButtonBase.js.map +1 -0
- package/elements/oj-menu-button/OjMenuButtonBase.ts +48 -0
- package/elements/oj-menu-button/index.js +17 -0
- package/elements/oj-menu-button/index.js.map +1 -0
- package/elements/oj-menu-button/index.ts +27 -0
- package/elements/oj-message/OjMessage.js +13 -0
- package/elements/oj-message/OjMessage.js.map +1 -0
- package/elements/oj-message/OjMessage.ts +19 -0
- package/elements/oj-message/OjMessageBase.js +17 -0
- package/elements/oj-message/OjMessageBase.js.map +1 -0
- package/elements/oj-message/OjMessageBase.ts +113 -0
- package/elements/oj-message/index.js +17 -0
- package/elements/oj-message/index.js.map +1 -0
- package/elements/oj-message/index.ts +27 -0
- package/elements/oj-n-box/OjNBox.js +8 -0
- package/elements/oj-n-box/OjNBox.js.map +1 -0
- package/elements/oj-n-box/OjNBox.ts +12 -0
- package/elements/oj-n-box/OjNBoxBase.js +116 -0
- package/elements/oj-n-box/OjNBoxBase.js.map +1 -0
- package/elements/oj-n-box/OjNBoxBase.ts +880 -0
- package/elements/oj-n-box/index.js +17 -0
- package/elements/oj-n-box/index.js.map +1 -0
- package/elements/oj-n-box/index.ts +27 -0
- package/elements/oj-navigation-list/OjNavigationList.js +186 -0
- package/elements/oj-navigation-list/OjNavigationList.js.map +1 -0
- package/elements/oj-navigation-list/OjNavigationList.ts +250 -0
- package/elements/oj-navigation-list/OjNavigationListBase.js +50 -0
- package/elements/oj-navigation-list/OjNavigationListBase.js.map +1 -0
- package/elements/oj-navigation-list/OjNavigationListBase.ts +164 -0
- package/elements/oj-navigation-list/index.js +17 -0
- package/elements/oj-navigation-list/index.js.map +1 -0
- package/elements/oj-navigation-list/index.ts +27 -0
- package/elements/oj-paging-control/OjPagingControl.js +13 -0
- package/elements/oj-paging-control/OjPagingControl.js.map +1 -0
- package/elements/oj-paging-control/OjPagingControl.ts +26 -0
- package/elements/oj-paging-control/OjPagingControlBase.js +29 -0
- package/elements/oj-paging-control/OjPagingControlBase.js.map +1 -0
- package/elements/oj-paging-control/OjPagingControlBase.ts +235 -0
- package/elements/oj-paging-control/index.js +17 -0
- package/elements/oj-paging-control/index.js.map +1 -0
- package/elements/oj-paging-control/index.ts +27 -0
- package/elements/oj-picto-chart/OjPictoChart.js +8 -0
- package/elements/oj-picto-chart/OjPictoChart.js.map +1 -0
- package/elements/oj-picto-chart/OjPictoChart.ts +12 -0
- package/elements/oj-picto-chart/OjPictoChartBase.js +86 -0
- package/elements/oj-picto-chart/OjPictoChartBase.js.map +1 -0
- package/elements/oj-picto-chart/OjPictoChartBase.ts +394 -0
- package/elements/oj-picto-chart/index.js +17 -0
- package/elements/oj-picto-chart/index.js.map +1 -0
- package/elements/oj-picto-chart/index.ts +27 -0
- package/elements/oj-popup/OjPopup.js +8 -0
- package/elements/oj-popup/OjPopup.js.map +1 -0
- package/elements/oj-popup/OjPopup.ts +11 -0
- package/elements/oj-popup/OjPopupBase.js +29 -0
- package/elements/oj-popup/OjPopupBase.js.map +1 -0
- package/elements/oj-popup/OjPopupBase.ts +155 -0
- package/elements/oj-popup/index.js +17 -0
- package/elements/oj-popup/index.js.map +1 -0
- package/elements/oj-popup/index.ts +27 -0
- package/elements/oj-progress/OjProgress.js +8 -0
- package/elements/oj-progress/OjProgress.js.map +1 -0
- package/elements/oj-progress/OjProgress.ts +12 -0
- package/elements/oj-progress/OjProgressBase.js +23 -0
- package/elements/oj-progress/OjProgressBase.js.map +1 -0
- package/elements/oj-progress/OjProgressBase.ts +65 -0
- package/elements/oj-progress/index.js +17 -0
- package/elements/oj-progress/index.js.map +1 -0
- package/elements/oj-progress/index.ts +27 -0
- package/elements/oj-progress-list/OjProgressList.js +8 -0
- package/elements/oj-progress-list/OjProgressList.js.map +1 -0
- package/elements/oj-progress-list/OjProgressList.ts +12 -0
- package/elements/oj-progress-list/OjProgressListBase.js +11 -0
- package/elements/oj-progress-list/OjProgressListBase.js.map +1 -0
- package/elements/oj-progress-list/OjProgressListBase.ts +21 -0
- package/elements/oj-progress-list/index.js +17 -0
- package/elements/oj-progress-list/index.js.map +1 -0
- package/elements/oj-progress-list/index.ts +27 -0
- package/elements/oj-radioset/OjRadioset.js +32 -0
- package/elements/oj-radioset/OjRadioset.js.map +1 -0
- package/elements/oj-radioset/OjRadioset.ts +63 -0
- package/elements/oj-radioset/OjRadiosetBase.js +68 -0
- package/elements/oj-radioset/OjRadiosetBase.js.map +1 -0
- package/elements/oj-radioset/OjRadiosetBase.ts +262 -0
- package/elements/oj-radioset/index.js +17 -0
- package/elements/oj-radioset/index.js.map +1 -0
- package/elements/oj-radioset/index.ts +27 -0
- package/elements/oj-rating-gauge/OjRatingGauge.js +8 -0
- package/elements/oj-rating-gauge/OjRatingGauge.js.map +1 -0
- package/elements/oj-rating-gauge/OjRatingGauge.ts +12 -0
- package/elements/oj-rating-gauge/OjRatingGaugeBase.js +80 -0
- package/elements/oj-rating-gauge/OjRatingGaugeBase.js.map +1 -0
- package/elements/oj-rating-gauge/OjRatingGaugeBase.ts +424 -0
- package/elements/oj-rating-gauge/index.js +17 -0
- package/elements/oj-rating-gauge/index.js.map +1 -0
- package/elements/oj-rating-gauge/index.ts +27 -0
- package/elements/oj-refresher/OjRefresher.js +8 -0
- package/elements/oj-refresher/OjRefresher.js.map +1 -0
- package/elements/oj-refresher/OjRefresher.ts +12 -0
- package/elements/oj-refresher/OjRefresherBase.js +20 -0
- package/elements/oj-refresher/OjRefresherBase.js.map +1 -0
- package/elements/oj-refresher/OjRefresherBase.ts +64 -0
- package/elements/oj-refresher/index.js +17 -0
- package/elements/oj-refresher/index.js.map +1 -0
- package/elements/oj-refresher/index.ts +27 -0
- package/elements/oj-row-expander/OjRowExpander.js +8 -0
- package/elements/oj-row-expander/OjRowExpander.js.map +1 -0
- package/elements/oj-row-expander/OjRowExpander.ts +12 -0
- package/elements/oj-row-expander/OjRowExpanderBase.js +20 -0
- package/elements/oj-row-expander/OjRowExpanderBase.js.map +1 -0
- package/elements/oj-row-expander/OjRowExpanderBase.ts +76 -0
- package/elements/oj-row-expander/index.js +17 -0
- package/elements/oj-row-expander/index.js.map +1 -0
- package/elements/oj-row-expander/index.ts +27 -0
- package/elements/oj-select-many/OjSelectMany.js +51 -0
- package/elements/oj-select-many/OjSelectMany.js.map +1 -0
- package/elements/oj-select-many/OjSelectMany.ts +80 -0
- package/elements/oj-select-many/OjSelectManyBase.js +89 -0
- package/elements/oj-select-many/OjSelectManyBase.js.map +1 -0
- package/elements/oj-select-many/OjSelectManyBase.ts +387 -0
- package/elements/oj-select-many/index.js +17 -0
- package/elements/oj-select-many/index.js.map +1 -0
- package/elements/oj-select-many/index.ts +27 -0
- package/elements/oj-select-one/OjSelectOne.js +45 -0
- package/elements/oj-select-one/OjSelectOne.js.map +1 -0
- package/elements/oj-select-one/OjSelectOne.ts +70 -0
- package/elements/oj-select-one/OjSelectOneBase.js +89 -0
- package/elements/oj-select-one/OjSelectOneBase.js.map +1 -0
- package/elements/oj-select-one/OjSelectOneBase.ts +387 -0
- package/elements/oj-select-one/index.js +17 -0
- package/elements/oj-select-one/index.js.map +1 -0
- package/elements/oj-select-one/index.ts +27 -0
- package/elements/oj-select-single/OjSelectSingle.js +35 -0
- package/elements/oj-select-single/OjSelectSingle.js.map +1 -0
- package/elements/oj-select-single/OjSelectSingle.ts +51 -0
- package/elements/oj-select-single/OjSelectSingleBase.js +77 -0
- package/elements/oj-select-single/OjSelectSingleBase.js.map +1 -0
- package/elements/oj-select-single/OjSelectSingleBase.ts +303 -0
- package/elements/oj-select-single/index.js +17 -0
- package/elements/oj-select-single/index.js.map +1 -0
- package/elements/oj-select-single/index.ts +27 -0
- package/elements/oj-selector/OjSelector.js +13 -0
- package/elements/oj-selector/OjSelector.js.map +1 -0
- package/elements/oj-selector/OjSelector.ts +20 -0
- package/elements/oj-selector/OjSelectorBase.js +26 -0
- package/elements/oj-selector/OjSelectorBase.js.map +1 -0
- package/elements/oj-selector/OjSelectorBase.ts +66 -0
- package/elements/oj-selector/index.js +17 -0
- package/elements/oj-selector/index.js.map +1 -0
- package/elements/oj-selector/index.ts +27 -0
- package/elements/oj-slider/OjSlider.js +15 -0
- package/elements/oj-slider/OjSlider.js.map +1 -0
- package/elements/oj-slider/OjSlider.ts +25 -0
- package/elements/oj-slider/OjSliderBase.js +71 -0
- package/elements/oj-slider/OjSliderBase.js.map +1 -0
- package/elements/oj-slider/OjSliderBase.ts +259 -0
- package/elements/oj-slider/index.js +17 -0
- package/elements/oj-slider/index.js.map +1 -0
- package/elements/oj-slider/index.ts +27 -0
- package/elements/oj-spark-chart/OjSparkChart.js +8 -0
- package/elements/oj-spark-chart/OjSparkChart.js.map +1 -0
- package/elements/oj-spark-chart/OjSparkChart.ts +12 -0
- package/elements/oj-spark-chart/OjSparkChartBase.js +95 -0
- package/elements/oj-spark-chart/OjSparkChartBase.js.map +1 -0
- package/elements/oj-spark-chart/OjSparkChartBase.ts +431 -0
- package/elements/oj-spark-chart/index.js +17 -0
- package/elements/oj-spark-chart/index.js.map +1 -0
- package/elements/oj-spark-chart/index.ts +27 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGauge.js +8 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGauge.js.map +1 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGauge.ts +12 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.js +107 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.js.map +1 -0
- package/elements/oj-status-meter-gauge/OjStatusMeterGaugeBase.ts +491 -0
- package/elements/oj-status-meter-gauge/index.js +17 -0
- package/elements/oj-status-meter-gauge/index.js.map +1 -0
- package/elements/oj-status-meter-gauge/index.ts +27 -0
- package/elements/oj-stream-list/OjStreamList.js +70 -0
- package/elements/oj-stream-list/OjStreamList.js.map +1 -0
- package/elements/oj-stream-list/OjStreamList.ts +79 -0
- package/elements/oj-stream-list/OjStreamListBase.js +29 -0
- package/elements/oj-stream-list/OjStreamListBase.js.map +1 -0
- package/elements/oj-stream-list/OjStreamListBase.ts +109 -0
- package/elements/oj-stream-list/index.js +17 -0
- package/elements/oj-stream-list/index.js.map +1 -0
- package/elements/oj-stream-list/index.ts +27 -0
- package/elements/oj-sunburst/OjSunburst.js +8 -0
- package/elements/oj-sunburst/OjSunburst.js.map +1 -0
- package/elements/oj-sunburst/OjSunburst.ts +12 -0
- package/elements/oj-sunburst/OjSunburstBase.js +104 -0
- package/elements/oj-sunburst/OjSunburstBase.js.map +1 -0
- package/elements/oj-sunburst/OjSunburstBase.ts +512 -0
- package/elements/oj-sunburst/index.js +17 -0
- package/elements/oj-sunburst/index.js.map +1 -0
- package/elements/oj-sunburst/index.ts +27 -0
- package/elements/oj-swipe-actions/OjSwipeActions.js +19 -0
- package/elements/oj-swipe-actions/OjSwipeActions.js.map +1 -0
- package/elements/oj-swipe-actions/OjSwipeActions.ts +30 -0
- package/elements/oj-swipe-actions/OjSwipeActionsBase.js +11 -0
- package/elements/oj-swipe-actions/OjSwipeActionsBase.js.map +1 -0
- package/elements/oj-swipe-actions/OjSwipeActionsBase.ts +37 -0
- package/elements/oj-swipe-actions/index.js +17 -0
- package/elements/oj-swipe-actions/index.js.map +1 -0
- package/elements/oj-swipe-actions/index.ts +27 -0
- package/elements/oj-switch/OjSwitch.js +16 -0
- package/elements/oj-switch/OjSwitch.js.map +1 -0
- package/elements/oj-switch/OjSwitch.ts +26 -0
- package/elements/oj-switch/OjSwitchBase.js +56 -0
- package/elements/oj-switch/OjSwitchBase.js.map +1 -0
- package/elements/oj-switch/OjSwitchBase.ts +192 -0
- package/elements/oj-switch/index.js +17 -0
- package/elements/oj-switch/index.js.map +1 -0
- package/elements/oj-switch/index.ts +27 -0
- package/elements/oj-tab-bar/OjTabBar.js +8 -0
- package/elements/oj-tab-bar/OjTabBar.js.map +1 -0
- package/elements/oj-tab-bar/OjTabBar.ts +12 -0
- package/elements/oj-tab-bar/OjTabBarBase.js +50 -0
- package/elements/oj-tab-bar/OjTabBarBase.js.map +1 -0
- package/elements/oj-tab-bar/OjTabBarBase.ts +200 -0
- package/elements/oj-tab-bar/index.js +17 -0
- package/elements/oj-tab-bar/index.js.map +1 -0
- package/elements/oj-tab-bar/index.ts +27 -0
- package/elements/oj-table/OjTable.js +33 -0
- package/elements/oj-table/OjTable.js.map +1 -0
- package/elements/oj-table/OjTable.ts +52 -0
- package/elements/oj-table/OjTableBase.js +98 -0
- package/elements/oj-table/OjTableBase.js.map +1 -0
- package/elements/oj-table/OjTableBase.ts +702 -0
- package/elements/oj-table/index.js +17 -0
- package/elements/oj-table/index.js.map +1 -0
- package/elements/oj-table/index.ts +27 -0
- package/elements/oj-tag-cloud/OjTagCloud.js +8 -0
- package/elements/oj-tag-cloud/OjTagCloud.js.map +1 -0
- package/elements/oj-tag-cloud/OjTagCloud.ts +12 -0
- package/elements/oj-tag-cloud/OjTagCloudBase.js +68 -0
- package/elements/oj-tag-cloud/OjTagCloudBase.js.map +1 -0
- package/elements/oj-tag-cloud/OjTagCloudBase.ts +318 -0
- package/elements/oj-tag-cloud/index.js +17 -0
- package/elements/oj-tag-cloud/index.js.map +1 -0
- package/elements/oj-tag-cloud/index.ts +27 -0
- package/elements/oj-text-area/OjTextArea.js +10 -0
- package/elements/oj-text-area/OjTextArea.js.map +1 -0
- package/elements/oj-text-area/OjTextArea.ts +14 -0
- package/elements/oj-text-area/OjTextAreaBase.js +95 -0
- package/elements/oj-text-area/OjTextAreaBase.js.map +1 -0
- package/elements/oj-text-area/OjTextAreaBase.ts +365 -0
- package/elements/oj-text-area/index.js +17 -0
- package/elements/oj-text-area/index.js.map +1 -0
- package/elements/oj-text-area/index.ts +27 -0
- package/elements/oj-thematic-map/OjThematicMap.js +8 -0
- package/elements/oj-thematic-map/OjThematicMap.js.map +1 -0
- package/elements/oj-thematic-map/OjThematicMap.ts +12 -0
- package/elements/oj-thematic-map/OjThematicMapBase.js +119 -0
- package/elements/oj-thematic-map/OjThematicMapBase.js.map +1 -0
- package/elements/oj-thematic-map/OjThematicMapBase.ts +777 -0
- package/elements/oj-thematic-map/index.js +17 -0
- package/elements/oj-thematic-map/index.js.map +1 -0
- package/elements/oj-thematic-map/index.ts +27 -0
- package/elements/oj-time-axis/OjTimeAxis.js +8 -0
- package/elements/oj-time-axis/OjTimeAxis.js.map +1 -0
- package/elements/oj-time-axis/OjTimeAxis.ts +12 -0
- package/elements/oj-time-axis/OjTimeAxisBase.js +26 -0
- package/elements/oj-time-axis/OjTimeAxisBase.js.map +1 -0
- package/elements/oj-time-axis/OjTimeAxisBase.ts +176 -0
- package/elements/oj-time-axis/index.js +17 -0
- package/elements/oj-time-axis/index.js.map +1 -0
- package/elements/oj-time-axis/index.ts +27 -0
- package/elements/oj-timeline/OjTimeline.js +8 -0
- package/elements/oj-timeline/OjTimeline.js.map +1 -0
- package/elements/oj-timeline/OjTimeline.ts +12 -0
- package/elements/oj-timeline/OjTimelineBase.js +71 -0
- package/elements/oj-timeline/OjTimelineBase.js.map +1 -0
- package/elements/oj-timeline/OjTimelineBase.ts +715 -0
- package/elements/oj-timeline/index.js +17 -0
- package/elements/oj-timeline/index.js.map +1 -0
- package/elements/oj-timeline/index.ts +27 -0
- package/elements/oj-train/OjTrain.js +8 -0
- package/elements/oj-train/OjTrain.js.map +1 -0
- package/elements/oj-train/OjTrain.ts +12 -0
- package/elements/oj-train/OjTrainBase.js +20 -0
- package/elements/oj-train/OjTrainBase.js.map +1 -0
- package/elements/oj-train/OjTrainBase.ts +72 -0
- package/elements/oj-train/index.js +17 -0
- package/elements/oj-train/index.js.map +1 -0
- package/elements/oj-train/index.ts +27 -0
- package/elements/oj-tree-view/OjTreeView.js +80 -0
- package/elements/oj-tree-view/OjTreeView.js.map +1 -0
- package/elements/oj-tree-view/OjTreeView.ts +117 -0
- package/elements/oj-tree-view/OjTreeViewBase.js +35 -0
- package/elements/oj-tree-view/OjTreeViewBase.js.map +1 -0
- package/elements/oj-tree-view/OjTreeViewBase.ts +131 -0
- package/elements/oj-tree-view/index.js +17 -0
- package/elements/oj-tree-view/index.js.map +1 -0
- package/elements/oj-tree-view/index.ts +27 -0
- package/elements/oj-treemap/OjTreemap.js +8 -0
- package/elements/oj-treemap/OjTreemap.js.map +1 -0
- package/elements/oj-treemap/OjTreemap.ts +12 -0
- package/elements/oj-treemap/OjTreemapBase.js +110 -0
- package/elements/oj-treemap/OjTreemapBase.js.map +1 -0
- package/elements/oj-treemap/OjTreemapBase.ts +594 -0
- package/elements/oj-treemap/index.js +17 -0
- package/elements/oj-treemap/index.js.map +1 -0
- package/elements/oj-treemap/index.ts +27 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayout.js +8 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayout.js.map +1 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayout.ts +12 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.js +23 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.js.map +1 -0
- package/elements/oj-waterfall-layout/OjWaterfallLayoutBase.ts +87 -0
- package/elements/oj-waterfall-layout/index.js +17 -0
- package/elements/oj-waterfall-layout/index.js.map +1 -0
- package/elements/oj-waterfall-layout/index.ts +27 -0
- package/index.js +164 -0
- package/index.js.map +1 -0
- package/index.ts +440 -0
- package/lib/Expectation.js +189 -0
- package/lib/Expectation.js.map +1 -0
- package/lib/Expectation.ts +272 -0
- package/lib/OjFetch.js +83 -0
- package/lib/OjFetch.js.map +1 -0
- package/lib/OjFetch.ts +158 -0
- package/lib/ScreenshotManager.js +113 -0
- package/lib/ScreenshotManager.js.map +1 -0
- package/lib/ScreenshotManager.ts +195 -0
- package/lib/driver-manager.js +89 -0
- package/lib/driver-manager.js.map +1 -0
- package/lib/driver-manager.ts +330 -0
- package/lib/driver-override.js +120 -0
- package/lib/driver-override.js.map +1 -0
- package/lib/driver-override.ts +255 -0
- package/lib/input-utils.js +24 -0
- package/lib/input-utils.js.map +1 -0
- package/lib/input-utils.ts +50 -0
- package/lib/slot-proxy.js +25 -0
- package/lib/slot-proxy.js.map +1 -0
- package/lib/slot-proxy.ts +61 -0
- package/lib/stale-element.js +29 -0
- package/lib/stale-element.js.map +1 -0
- package/lib/stale-element.ts +44 -0
- package/package.json +19 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.register = void 0;
|
|
4
|
+
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
5
|
+
const OjWebElement_1 = require("../elements/OjWebElement");
|
|
6
|
+
const stale_element_1 = require("./stale-element");
|
|
7
|
+
function register(tagName, ctor) {
|
|
8
|
+
WebElementRegistry.register(tagName, ctor);
|
|
9
|
+
}
|
|
10
|
+
exports.register = register;
|
|
11
|
+
class WebElementRegistry {
|
|
12
|
+
static register(tagName, ctor) {
|
|
13
|
+
WebElementRegistry.tagToCtorMap[tagName] = ctor;
|
|
14
|
+
}
|
|
15
|
+
static get(tagName) {
|
|
16
|
+
return WebElementRegistry.tagToCtorMap[tagName];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
WebElementRegistry.tagToCtorMap = {};
|
|
20
|
+
selenium_webdriver_1.WebDriver.prototype.findElement = wrapFindElement(selenium_webdriver_1.WebDriver.prototype.findElement);
|
|
21
|
+
selenium_webdriver_1.WebDriver.prototype.findElements = wrapFindElements(selenium_webdriver_1.WebDriver.prototype.findElements);
|
|
22
|
+
selenium_webdriver_1.WebElement.prototype.findElement = wrapFindElement(selenium_webdriver_1.WebElement.prototype.findElement);
|
|
23
|
+
selenium_webdriver_1.WebElement.prototype.findElements = wrapFindElements(selenium_webdriver_1.WebElement.prototype.findElements);
|
|
24
|
+
selenium_webdriver_1.WebDriver.prototype.executeScript = wrapExecuteScript(selenium_webdriver_1.WebDriver.prototype.executeScript);
|
|
25
|
+
selenium_webdriver_1.WebDriver.prototype.executeAsyncScript = wrapExecuteScript(selenium_webdriver_1.WebDriver.prototype.executeAsyncScript);
|
|
26
|
+
function wrapFindElement(origFunc) {
|
|
27
|
+
return function findElement(locator) {
|
|
28
|
+
const elPromise = origFunc.call(this, locator);
|
|
29
|
+
const parentEl = this instanceof selenium_webdriver_1.WebElement ? this : undefined;
|
|
30
|
+
return new selenium_webdriver_1.WebElementPromise(elPromise.getDriver(), elPromise.then(async (el) => {
|
|
31
|
+
const isJet = await isJetPage(el.getDriver());
|
|
32
|
+
return isJet ? createTestAdapter(el, locator, parentEl) : el;
|
|
33
|
+
}));
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function wrapFindElements(origFunc) {
|
|
37
|
+
return async function findElements(locator) {
|
|
38
|
+
const elRef = this instanceof selenium_webdriver_1.WebElement ? this : undefined;
|
|
39
|
+
const matches = await origFunc.call(this, locator);
|
|
40
|
+
let weMatches = [];
|
|
41
|
+
const isJet = matches.length && await isJetPage(matches[0].getDriver());
|
|
42
|
+
if (isJet) {
|
|
43
|
+
for (let el, i = 0, len = matches.length; i < len; i++) {
|
|
44
|
+
el = matches[i];
|
|
45
|
+
const ce = await createTestAdapter(el, locator, elRef, i);
|
|
46
|
+
weMatches.push(ce);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
weMatches = matches;
|
|
51
|
+
}
|
|
52
|
+
return weMatches;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function wrapExecuteScript(origFunc) {
|
|
56
|
+
return async function (...args) {
|
|
57
|
+
var _a;
|
|
58
|
+
try {
|
|
59
|
+
const ret = await origFunc.apply(this, args);
|
|
60
|
+
return ret;
|
|
61
|
+
}
|
|
62
|
+
catch (ex) {
|
|
63
|
+
if (ex instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
|
|
64
|
+
const newArgs = [];
|
|
65
|
+
const locators = [];
|
|
66
|
+
for (let i = 0, len = args.length; i < len; i++) {
|
|
67
|
+
let arg = args[i];
|
|
68
|
+
if (arg instanceof OjWebElement_1.OjWebElement) {
|
|
69
|
+
arg = await stale_element_1.requeryElement(arg);
|
|
70
|
+
locators.push((_a = arg._locators) === null || _a === void 0 ? void 0 : _a.elLocator);
|
|
71
|
+
}
|
|
72
|
+
newArgs.push(arg);
|
|
73
|
+
}
|
|
74
|
+
console.warn(`Trapped stale element executing script on ${locators}`);
|
|
75
|
+
return origFunc.apply(this, newArgs);
|
|
76
|
+
}
|
|
77
|
+
throw ex;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async function isJetPage(driver) {
|
|
82
|
+
try {
|
|
83
|
+
await driver.executeScript('require("ojs/ojcontext")');
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch (ex) { }
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
async function createTestAdapter(el, elLocator, parentEl, elementsIndex) {
|
|
90
|
+
const tagName = await getTagName(el, elLocator, parentEl, elementsIndex);
|
|
91
|
+
const ctor = WebElementRegistry.get(tagName) || OjWebElement_1.OjWebElement;
|
|
92
|
+
return new ctor(el, {
|
|
93
|
+
elLocator,
|
|
94
|
+
elementsIndex,
|
|
95
|
+
parentEl,
|
|
96
|
+
tagName,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function getTagName(el, elLocator, parentEl, elementsIndex) {
|
|
100
|
+
let tagName;
|
|
101
|
+
try {
|
|
102
|
+
tagName = await el.getTagName();
|
|
103
|
+
}
|
|
104
|
+
catch (ex) {
|
|
105
|
+
if (ex instanceof selenium_webdriver_1.error.StaleElementReferenceError && elLocator) {
|
|
106
|
+
const driver = parentEl || el.getDriver();
|
|
107
|
+
let requeried;
|
|
108
|
+
if (elementsIndex === undefined) {
|
|
109
|
+
requeried = await driver.findElement(elLocator);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const matches = await driver.findElements(elLocator);
|
|
113
|
+
requeried = matches[elementsIndex];
|
|
114
|
+
}
|
|
115
|
+
tagName = await getTagName(requeried, elLocator, parentEl, elementsIndex);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return tagName;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=driver-override.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver-override.js","sourceRoot":"","sources":["../../../rt/src/test/webdriverjs/oraclejet-webdriver/lib/driver-override.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import {
|
|
2
|
+
error,
|
|
3
|
+
Locator,
|
|
4
|
+
WebDriver,
|
|
5
|
+
WebElement,
|
|
6
|
+
WebElementPromise,
|
|
7
|
+
} from "selenium-webdriver";
|
|
8
|
+
|
|
9
|
+
// Import OjWebElement directly from its file rather than through
|
|
10
|
+
// 'elements' package, to avoid circular dependency (elements will
|
|
11
|
+
// call to register themselves upon loading)
|
|
12
|
+
import { OjWebElement, ElementLocators } from "../elements/OjWebElement";
|
|
13
|
+
import { requeryElement } from "./stale-element";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Register a constructor for a custom WebElement for a given tag name.
|
|
17
|
+
* @param tagName The DOM tag name for the custom element
|
|
18
|
+
* @param ctor The constructor function for the custom WebElement
|
|
19
|
+
*/
|
|
20
|
+
export function register(
|
|
21
|
+
tagName: string,
|
|
22
|
+
ctor: new (el: WebElement, locators: ElementLocators) => OjWebElement
|
|
23
|
+
) {
|
|
24
|
+
WebElementRegistry.register(tagName, ctor);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A registry which associates the constructors for custom WebElements with their
|
|
29
|
+
* associated tag names. This registry should only be used internally by custom
|
|
30
|
+
* WebElement implementations, and shouldn't be used directly in tests.
|
|
31
|
+
*/
|
|
32
|
+
class WebElementRegistry {
|
|
33
|
+
/**
|
|
34
|
+
* Register a constructor for a custom WebElement for a given tag name.
|
|
35
|
+
* @param tagName The DOM tag name for the custom element
|
|
36
|
+
* @param ctor The constructor function for the custom WebElement
|
|
37
|
+
*/
|
|
38
|
+
public static register(
|
|
39
|
+
tagName: string,
|
|
40
|
+
ctor: new (el: WebElement, locators: ElementLocators) => OjWebElement
|
|
41
|
+
) {
|
|
42
|
+
WebElementRegistry.tagToCtorMap[tagName] = ctor;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the constructor for a custom WebElement given a tag name.
|
|
46
|
+
* @param tagName The DOM tag name for the custom element
|
|
47
|
+
* @return A custom WebElement constructor for the given tagName, or undefined
|
|
48
|
+
* if none exists.
|
|
49
|
+
*/
|
|
50
|
+
public static get(
|
|
51
|
+
tagName: string
|
|
52
|
+
): new (el: WebElement, locators: ElementLocators) => OjWebElement {
|
|
53
|
+
return WebElementRegistry.tagToCtorMap[tagName];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A mapping of element tag names to WebElement constructors
|
|
57
|
+
*/
|
|
58
|
+
private static tagToCtorMap: {
|
|
59
|
+
[tagName: string]: new (
|
|
60
|
+
el: WebElement,
|
|
61
|
+
locators: ElementLocators
|
|
62
|
+
) => OjWebElement;
|
|
63
|
+
} = {};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
WebDriver.prototype.findElement = wrapFindElement(
|
|
67
|
+
WebDriver.prototype.findElement
|
|
68
|
+
);
|
|
69
|
+
WebDriver.prototype.findElements = wrapFindElements(
|
|
70
|
+
WebDriver.prototype.findElements
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
WebElement.prototype.findElement = wrapFindElement(
|
|
74
|
+
WebElement.prototype.findElement
|
|
75
|
+
);
|
|
76
|
+
WebElement.prototype.findElements = wrapFindElements(
|
|
77
|
+
WebElement.prototype.findElements
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
WebDriver.prototype.executeScript = wrapExecuteScript(
|
|
81
|
+
WebDriver.prototype.executeScript
|
|
82
|
+
);
|
|
83
|
+
WebDriver.prototype.executeAsyncScript = wrapExecuteScript(
|
|
84
|
+
WebDriver.prototype.executeAsyncScript
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Create a wrapper for findElement()
|
|
89
|
+
* @param origFunc The original findElement function
|
|
90
|
+
*/
|
|
91
|
+
function wrapFindElement(origFunc: (locator: Locator) => WebElementPromise) {
|
|
92
|
+
return function findElement(locator: Locator): WebElementPromise {
|
|
93
|
+
const elPromise = origFunc.call(this, locator);
|
|
94
|
+
// Pass ourselves as parent if this is WebElement.findElement
|
|
95
|
+
const parentEl = this instanceof WebElement ? this : undefined;
|
|
96
|
+
return new WebElementPromise(
|
|
97
|
+
elPromise.getDriver(),
|
|
98
|
+
elPromise.then(async (el: WebElement) => {
|
|
99
|
+
const isJet = await isJetPage(el.getDriver());
|
|
100
|
+
return isJet ? createTestAdapter(el, locator, parentEl) : el;
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create a wrapper for findElements()
|
|
107
|
+
* @param origFunc The original findElements function
|
|
108
|
+
*/
|
|
109
|
+
function wrapFindElements(
|
|
110
|
+
origFunc: (locator: Locator) => Promise<WebElement[]>
|
|
111
|
+
) {
|
|
112
|
+
return async function findElements(locator: Locator): Promise<WebElement[]> {
|
|
113
|
+
// Pass ourselves as parent if this is WebElement.findElements
|
|
114
|
+
const elRef = this instanceof WebElement ? this : undefined;
|
|
115
|
+
const matches = await origFunc.call(this, locator);
|
|
116
|
+
let weMatches: WebElement[] = [];
|
|
117
|
+
const isJet = matches.length && await isJetPage(matches[0].getDriver());
|
|
118
|
+
if (isJet) {
|
|
119
|
+
for (let el, i = 0, len = matches.length; i < len; i++) {
|
|
120
|
+
el = matches[i];
|
|
121
|
+
const ce = await createTestAdapter(el, locator, elRef, i);
|
|
122
|
+
weMatches.push(ce);
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
weMatches = matches;
|
|
126
|
+
}
|
|
127
|
+
return weMatches;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Wrap WebDriver.executeScript/executeAsyncScript with a function that traps
|
|
133
|
+
* StaleElementReferenceError and requeries the element(s) to try again
|
|
134
|
+
* @param origFunc The original driver.executeScript/executeAsyncScript
|
|
135
|
+
*/
|
|
136
|
+
function wrapExecuteScript(origFunc: <T>(...args: any) => Promise<T>) {
|
|
137
|
+
return async function<T>(...args: any[]): Promise<T> {
|
|
138
|
+
try {
|
|
139
|
+
const ret: T = await origFunc.apply(this, args);
|
|
140
|
+
return ret;
|
|
141
|
+
} catch (ex) {
|
|
142
|
+
if (ex instanceof error.StaleElementReferenceError) {
|
|
143
|
+
const newArgs = [];
|
|
144
|
+
const locators = [];
|
|
145
|
+
for (let i = 0, len = args.length; i < len; i++) {
|
|
146
|
+
let arg = args[i];
|
|
147
|
+
// Requery arguments which are OjWebElements
|
|
148
|
+
if (arg instanceof OjWebElement) {
|
|
149
|
+
arg = await requeryElement(arg);
|
|
150
|
+
locators.push(arg._locators?.elLocator);
|
|
151
|
+
}
|
|
152
|
+
newArgs.push(arg);
|
|
153
|
+
}
|
|
154
|
+
console.warn(
|
|
155
|
+
`Trapped stale element executing script on ${locators}`
|
|
156
|
+
);
|
|
157
|
+
return origFunc.apply(this, newArgs);
|
|
158
|
+
}
|
|
159
|
+
throw ex;
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Test if the page is a JET page.
|
|
166
|
+
* @param driver WebDriver instance
|
|
167
|
+
* @returns {boolean} Returns true if JET page, false otherwise
|
|
168
|
+
*/
|
|
169
|
+
async function isJetPage(driver: WebDriver): Promise<boolean> {
|
|
170
|
+
try {
|
|
171
|
+
// Check that the page has RequireJS and ojs/ojcontext module
|
|
172
|
+
await driver.executeScript('require("ojs/ojcontext")');
|
|
173
|
+
return true;
|
|
174
|
+
} catch (ex) {}
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Create a custom WebElement from the original one. The WebElement constructor
|
|
180
|
+
* is looked up in WebElementRegistry using the element's tag name, and the
|
|
181
|
+
* registry is populated by each custom element. If no constructor is found,
|
|
182
|
+
* OjWebElement is used.
|
|
183
|
+
* @param el The original WebElement
|
|
184
|
+
* @param elLocator The By locator used to originally locate the element. This
|
|
185
|
+
* locator will be used to re-query the element for its tagName if stale element
|
|
186
|
+
* exception is encountered. If not supplied, this function will return OjWebElement
|
|
187
|
+
* @param parentEl The immediate parent from which we were queried (WebElement.findElement)
|
|
188
|
+
* @param elementsIndex The index within the array of WebElements returned from
|
|
189
|
+
* findElements.
|
|
190
|
+
* detected.
|
|
191
|
+
* @return {OjWebElement} The test adapter for the given element, or OjWebElement
|
|
192
|
+
* if none exists
|
|
193
|
+
*/
|
|
194
|
+
async function createTestAdapter(
|
|
195
|
+
el: WebElement,
|
|
196
|
+
elLocator?: Locator,
|
|
197
|
+
parentEl?: OjWebElement,
|
|
198
|
+
elementsIndex?: number
|
|
199
|
+
): Promise<WebElement> {
|
|
200
|
+
// Call exception-trapping getTagName() to ensure any exceptions are caught,
|
|
201
|
+
// and the call returns.
|
|
202
|
+
const tagName = await getTagName(el, elLocator, parentEl, elementsIndex);
|
|
203
|
+
const ctor = WebElementRegistry.get(tagName) || OjWebElement;
|
|
204
|
+
return new ctor(el, {
|
|
205
|
+
elLocator,
|
|
206
|
+
elementsIndex,
|
|
207
|
+
parentEl,
|
|
208
|
+
tagName,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Query the for element's tag name. This function traps StaleElement exceptions
|
|
214
|
+
* and requeries the element to try the call again. All other exceptions are
|
|
215
|
+
* caught and an empty tagName will be returned.
|
|
216
|
+
* @param el The original element
|
|
217
|
+
* @param elLocator The element Locator
|
|
218
|
+
* @param parentEl A parent element which contains the element, if any
|
|
219
|
+
* @param elementsIndex An index in the array of matched items for the original
|
|
220
|
+
* element
|
|
221
|
+
* @return {string} The element's tag name
|
|
222
|
+
*/
|
|
223
|
+
async function getTagName(
|
|
224
|
+
el: WebElement,
|
|
225
|
+
elLocator?: Locator,
|
|
226
|
+
parentEl?: OjWebElement,
|
|
227
|
+
elementsIndex?: number
|
|
228
|
+
): Promise<string> {
|
|
229
|
+
let tagName: string;
|
|
230
|
+
try {
|
|
231
|
+
tagName = await el.getTagName();
|
|
232
|
+
} catch (ex) {
|
|
233
|
+
// Only try to requery on stale element exception if original elLocator
|
|
234
|
+
// exists. The locator is present most of the time, except if the element
|
|
235
|
+
// was returned from driver.wait(until.elementLocated). That method doesn't
|
|
236
|
+
// provide access to the original locator.
|
|
237
|
+
if (ex instanceof error.StaleElementReferenceError && elLocator) {
|
|
238
|
+
const driver = parentEl || el.getDriver();
|
|
239
|
+
let requeried: WebElement;
|
|
240
|
+
|
|
241
|
+
if (elementsIndex === undefined) {
|
|
242
|
+
// Element found with findElement (single)
|
|
243
|
+
requeried = await driver.findElement(elLocator);
|
|
244
|
+
} else {
|
|
245
|
+
// Element found with findElements (multiple)
|
|
246
|
+
const matches = await driver.findElements(elLocator);
|
|
247
|
+
requeried = matches[elementsIndex];
|
|
248
|
+
}
|
|
249
|
+
// Call exception-trapping getTagName() again, just in case another exception
|
|
250
|
+
// occurs with calling element.getTagName() on the new re-queried element.
|
|
251
|
+
tagName = await getTagName(requeried, elLocator, parentEl, elementsIndex);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return tagName;
|
|
255
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mixinChangeValue = void 0;
|
|
4
|
+
const selenium_webdriver_1 = require("selenium-webdriver");
|
|
5
|
+
function mixinChangeValue(clazz) {
|
|
6
|
+
Object.defineProperty(clazz.prototype, "changeValue", {
|
|
7
|
+
value: async function (value) {
|
|
8
|
+
const input = await this.findElement(selenium_webdriver_1.By.css('.oj-text-field-input'));
|
|
9
|
+
await input.clear();
|
|
10
|
+
await input.sendKeys(value);
|
|
11
|
+
return this.getDriver().executeAsyncScript(`
|
|
12
|
+
let el = arguments[0];
|
|
13
|
+
let done = arguments[1];
|
|
14
|
+
if (typeof el.validate === 'function') {
|
|
15
|
+
el.validate().then(done).catch(done);
|
|
16
|
+
} else {
|
|
17
|
+
done();
|
|
18
|
+
}
|
|
19
|
+
`, this);
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.mixinChangeValue = mixinChangeValue;
|
|
24
|
+
//# sourceMappingURL=input-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-utils.js","sourceRoot":"","sources":["../../../rt/src/test/webdriverjs/oraclejet-webdriver/lib/input-utils.ts"],"names":[],"mappings":";;;AAIA,2DAAwC;AA0BxC,SAAgB,gBAAgB,CAAC,KAA0B;IACzD,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE;QACpD,KAAK,EAAE,KAAK,WAAW,KAAa;YAElC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YAEpB,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC;;;;;;;;OAQ1C,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAnBD,4CAmBC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Set of utilities common to input component test adapters
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { By } from "selenium-webdriver";
|
|
6
|
+
import { OjWebElement } from "../elements";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This method should only be called by test adapter classes for input components
|
|
10
|
+
* which support text input, such as oj-input-text, oj-input-date, etc.
|
|
11
|
+
* Mixin a "changeValue" function to the given class to perform a value change
|
|
12
|
+
* on the component.
|
|
13
|
+
*
|
|
14
|
+
* NOTE: The changeValue method will focus on the component's .oj-text-field-input
|
|
15
|
+
* and call sendKeys to send the value through the component UI. To trigger the
|
|
16
|
+
* value update and validation, this method also calls validate() on the component
|
|
17
|
+
* directly.
|
|
18
|
+
* We don't want to send Tab because that can cause other model updates in the
|
|
19
|
+
* component is embedded within another container which is listening on blur to
|
|
20
|
+
* update its values, such as oj-dynamic-form.
|
|
21
|
+
* We also don't want to send Enter as that can cause containers listening on
|
|
22
|
+
* key events to submit/navigate/etc when Enter is received on any of the fields,
|
|
23
|
+
* such as a field in oj-dialog which closes the dialog when user presses Enter.
|
|
24
|
+
*
|
|
25
|
+
* @param clazz The class to be modified
|
|
26
|
+
* @param inputLocator An optional Locator which identifies the input element to
|
|
27
|
+
* be interacted with. This locator should be relative to the component root, and
|
|
28
|
+
* should be able to receive focus in the DOM. If not specified, the root of the
|
|
29
|
+
* component is assumed to be the focusable element.
|
|
30
|
+
*/
|
|
31
|
+
export function mixinChangeValue(clazz: typeof OjWebElement) {
|
|
32
|
+
Object.defineProperty(clazz.prototype, "changeValue", {
|
|
33
|
+
value: async function (value: string) {
|
|
34
|
+
// Find <input> to clear
|
|
35
|
+
const input = await this.findElement(By.css('.oj-text-field-input'));
|
|
36
|
+
await input.clear();
|
|
37
|
+
// Send the value with sendKeys, then call validate()
|
|
38
|
+
await input.sendKeys(value);
|
|
39
|
+
return this.getDriver().executeAsyncScript(`
|
|
40
|
+
let el = arguments[0];
|
|
41
|
+
let done = arguments[1];
|
|
42
|
+
if (typeof el.validate === 'function') {
|
|
43
|
+
el.validate().then(done).catch(done);
|
|
44
|
+
} else {
|
|
45
|
+
done();
|
|
46
|
+
}
|
|
47
|
+
`, this);
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.slotProxy = void 0;
|
|
4
|
+
function slotProxy(el) {
|
|
5
|
+
if (!el) {
|
|
6
|
+
throw Error('No root element given for SlotProxy');
|
|
7
|
+
}
|
|
8
|
+
return new SlotProxyImpl(el);
|
|
9
|
+
}
|
|
10
|
+
exports.slotProxy = slotProxy;
|
|
11
|
+
class SlotProxyImpl {
|
|
12
|
+
constructor(el) {
|
|
13
|
+
this._root = el;
|
|
14
|
+
}
|
|
15
|
+
getDriver() {
|
|
16
|
+
return this._root.getDriver();
|
|
17
|
+
}
|
|
18
|
+
findElement(locator) {
|
|
19
|
+
return this._root.findElement(locator);
|
|
20
|
+
}
|
|
21
|
+
findElements(locator) {
|
|
22
|
+
return this._root.findElements(locator);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=slot-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-proxy.js","sourceRoot":"","sources":["../../../rt/src/test/webdriverjs/oraclejet-webdriver/lib/slot-proxy.ts"],"names":[],"mappings":";;;AA+BA,SAAgB,SAAS,CAAC,EAAc;IACtC,IAAI,CAAC,EAAE,EAAE;QACP,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;AAC/B,CAAC;AALD,8BAKC;AAMD,MAAM,aAAa;IAGjB,YAAY,EAAc;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,OAAgB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,OAAgB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
WebElement,
|
|
3
|
+
Locator,
|
|
4
|
+
WebElementPromise,
|
|
5
|
+
WebDriver
|
|
6
|
+
} from "selenium-webdriver";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A proxy to the underlying WebElement which represents a slot/single row within
|
|
10
|
+
* the component.
|
|
11
|
+
*/
|
|
12
|
+
export interface SlotProxy {
|
|
13
|
+
/**
|
|
14
|
+
* Find a WebElement within this SlotProxy
|
|
15
|
+
* @param locator The element locator
|
|
16
|
+
*/
|
|
17
|
+
findElement(locator: Locator): WebElementPromise;
|
|
18
|
+
/**
|
|
19
|
+
* Find an array of matching elements within this SlotProxy
|
|
20
|
+
* @param locator The elements locator
|
|
21
|
+
*/
|
|
22
|
+
findElements(locator: Locator): Promise<WebElement[]>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Create a SlotProxy proxy for the given WebElement
|
|
28
|
+
* @param el The WebElement to proxy
|
|
29
|
+
* @return {SlotProxy} A SlotProxy implementation which wraps the given
|
|
30
|
+
* WebElement.
|
|
31
|
+
*/
|
|
32
|
+
export function slotProxy(el: WebElement): SlotProxy {
|
|
33
|
+
if (!el) {
|
|
34
|
+
throw Error('No root element given for SlotProxy');
|
|
35
|
+
}
|
|
36
|
+
return new SlotProxyImpl(el);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* Default implementation of SlotProxy, used to wrap the underlying WebElement
|
|
41
|
+
* for the collection row and delegate exposed functionality to that WebElement.
|
|
42
|
+
*/
|
|
43
|
+
class SlotProxyImpl implements SlotProxy {
|
|
44
|
+
private _root: WebElement;
|
|
45
|
+
|
|
46
|
+
constructor(el: WebElement) {
|
|
47
|
+
this._root = el;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getDriver(): WebDriver {
|
|
51
|
+
return this._root.getDriver();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
findElement(locator: Locator): WebElementPromise {
|
|
55
|
+
return this._root.findElement(locator);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
findElements(locator: Locator): Promise<WebElement[]> {
|
|
59
|
+
return this._root.findElements(locator);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requeryElement = void 0;
|
|
4
|
+
async function requeryElement(el) {
|
|
5
|
+
const driver = el.getDriver();
|
|
6
|
+
const locators = el._locators || {};
|
|
7
|
+
let requeried;
|
|
8
|
+
const parentEl = locators.parentEl
|
|
9
|
+
? await requeryElement(locators.parentEl)
|
|
10
|
+
: driver;
|
|
11
|
+
if (locators.elementsIndex === undefined) {
|
|
12
|
+
requeried = (await parentEl.findElement(locators.elLocator));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const elements = await parentEl.findElements(locators.elLocator);
|
|
16
|
+
requeried = elements[locators.elementsIndex];
|
|
17
|
+
}
|
|
18
|
+
if (!requeried) {
|
|
19
|
+
return el;
|
|
20
|
+
}
|
|
21
|
+
const reTagName = await requeried.getTagName();
|
|
22
|
+
if (el.constructor !== requeried.constructor ||
|
|
23
|
+
locators.tagName !== reTagName) {
|
|
24
|
+
throw Error(`Expected to find <${locators.tagName}> but got <${reTagName}>`);
|
|
25
|
+
}
|
|
26
|
+
return requeried;
|
|
27
|
+
}
|
|
28
|
+
exports.requeryElement = requeryElement;
|
|
29
|
+
//# sourceMappingURL=stale-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stale-element.js","sourceRoot":"","sources":["../../../rt/src/test/webdriverjs/oraclejet-webdriver/lib/stale-element.ts"],"names":[],"mappings":";;;AAQO,KAAK,UAAU,cAAc,CAClC,EAAK;IAEL,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAI,EAAU,CAAC,SAAS,IAAI,EAAE,CAAC;IAC7C,IAAI,SAAY,CAAC;IAGjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ;QAChC,CAAC,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE;QAExC,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAM,CAAC;KACnE;SAAM;QAEL,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjE,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAM,CAAC;KACnD;IACD,IAAI,CAAC,SAAS,EAAE;QAEd,OAAO,EAAE,CAAC;KACX;IACD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAE/C,IACE,EAAE,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW;QACxC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAC9B;QACA,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,OAAO,cAAc,SAAS,GAAG,CAChE,CAAC;KACH;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAnCD,wCAmCC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { OjWebElement } from "../elements";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Requery the WebElement using its stored locator
|
|
5
|
+
* @private
|
|
6
|
+
* @param el The WebElement to requery
|
|
7
|
+
* @return A Promise with the re-queried WebElement
|
|
8
|
+
*/
|
|
9
|
+
export async function requeryElement<T extends OjWebElement>(
|
|
10
|
+
el: T
|
|
11
|
+
): Promise<T> {
|
|
12
|
+
const driver = el.getDriver();
|
|
13
|
+
const locators = (el as any)._locators || {};
|
|
14
|
+
let requeried: T;
|
|
15
|
+
|
|
16
|
+
// If parentEl exists, find it first before locating element
|
|
17
|
+
const parentEl = locators.parentEl
|
|
18
|
+
? await requeryElement(locators.parentEl)
|
|
19
|
+
: driver;
|
|
20
|
+
|
|
21
|
+
if (locators.elementsIndex === undefined) {
|
|
22
|
+
// Element found with findElement (single)
|
|
23
|
+
requeried = (await parentEl.findElement(locators.elLocator)) as T;
|
|
24
|
+
} else {
|
|
25
|
+
// Element found with findElements (multiple)
|
|
26
|
+
const elements = await parentEl.findElements(locators.elLocator);
|
|
27
|
+
requeried = elements[locators.elementsIndex] as T;
|
|
28
|
+
}
|
|
29
|
+
if (!requeried) {
|
|
30
|
+
// If element not found return the original element to throw StaleElementReferenceError in sub sequent call
|
|
31
|
+
return el;
|
|
32
|
+
}
|
|
33
|
+
const reTagName = await requeried.getTagName();
|
|
34
|
+
// Check that the requeried element is of the same type as the original.
|
|
35
|
+
if (
|
|
36
|
+
el.constructor !== requeried.constructor ||
|
|
37
|
+
locators.tagName !== reTagName
|
|
38
|
+
) {
|
|
39
|
+
throw Error(
|
|
40
|
+
`Expected to find <${locators.tagName}> but got <${reTagName}>`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
return requeried;
|
|
44
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@oracle/oraclejet-webdriver",
|
|
3
|
+
"version": "10.1.7",
|
|
4
|
+
"description": "Oracle JET WebDriverJS WebElements",
|
|
5
|
+
"config": {
|
|
6
|
+
"revision": "2022-02-17_13-46-45"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {},
|
|
9
|
+
"devDependencies": {},
|
|
10
|
+
"files": [
|
|
11
|
+
"index.*",
|
|
12
|
+
"tsconfig.json",
|
|
13
|
+
"/elements/**/*",
|
|
14
|
+
"/lib/**/*",
|
|
15
|
+
"/bin/**/*"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
}
|
|
19
|
+
}
|