UNPKG

@sap_oss/wdio-qmate-service

Version:

[![REUSE status](https://api.reuse.software/badge/github.com/SAP/wdio-qmate-service)](https://api.reuse.software/info/github.com/SAP/wdio-qmate-service)[![Node.js CI](https://github.com/SAP/wdio-qmate-service/actions/workflows/node.js.yml/badge.svg)](http

36 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ControlFinder = void 0; const LocatorDebug_1 = require("../utils/LocatorDebug"); class ControlFinder { static retrieveUI5Controls(selector, rootElement) { const nodes = ControlFinder.retrieveNodesFromBody(selector, rootElement) || []; return ControlFinder.retrieveValidUI5Controls(nodes); } static retrieveNodesFromBody(selector, rootElement) { // build smart css selector if possible let cssSelector = "*"; if (selector.elementProperties?.id) { if (selector.elementProperties.id.includes("*") && !selector.elementProperties.id.substring(1, selector.elementProperties.id.length - 1).includes("*")) { const idWithoutWildcards = selector.elementProperties.id.replaceAll("*", ""); LocatorDebug_1.LocatorDebug.debugLog("shortened id is '", idWithoutWildcards, "' from '", selector.elementProperties.id, "'"); cssSelector = `*[id*="${idWithoutWildcards}"]`; } } if (rootElement) { return Array.from(rootElement.querySelectorAll(cssSelector)); } const sapBodies = Array.from(document.getElementsByClassName("sapUiBody")); return sapBodies.reduce((acc, body) => { return acc.concat(Array.from(body.querySelectorAll(cssSelector))); }, []); } static retrieveValidUI5Controls(nodes) { return nodes.map((node) => ControlFinder.getUI5Control(node.getAttribute("id"))).filter((element) => element); } static getUI5Control(id) { return (sap.ui.core?.Element?.getElementById || sap.ui.getCore().byId)(id); } } exports.ControlFinder = ControlFinder; //# sourceMappingURL=ControlFinder.js.map