UNPKG

wdio-ui5-service

Version:

WebdriverIO plugin for testing UI5 browser-based apps

48 lines 2.35 kB
async function clientSide_allControls(controlSelector, browserInstance) { controlSelector = await Promise.resolve(controlSelector); // to plug into fluent async api return await browserInstance.execute(async function wdi5_allControls(controlSelector) { if (!window.wdi5 || !window.bridge) { // Local checkForWdi5BrowserReady.js for better performance const wdi5MissingErr = new Error(`WDI5 is not available in the browser context! window.wdi5: ${!!window.wdi5} | window.bridge: ${!!window.bridge}`); console.error(wdi5MissingErr); // eslint-disable-line no-console throw wdi5MissingErr; } const waitForUI5Options = Object.assign({}, window.wdi5.waitForUI5Options); if (controlSelector.timeout) { waitForUI5Options.timeout = controlSelector.timeout; } try { await window.bridge.waitForUI5(waitForUI5Options); } catch (error) { return window.wdi5.errorHandling(error); } window.wdi5.Log.info("[browser wdi5] locating " + JSON.stringify(controlSelector)); controlSelector.selector = window.wdi5.createMatcher(controlSelector.selector); let domElements; try { // @ts-expect-error: Property 'findAllDOMElementsByControlSelector' does not exist on type 'Bridge' domElements = await window.bridge.findAllDOMElementsByControlSelector(controlSelector); } catch (error) { return window.wdi5.errorHandling(error); } // ui5 control const returnElements = []; domElements.forEach((domElement) => { const ui5Control = window.wdi5.getUI5CtlForWebObj(domElement); const id = ui5Control.getId(); window.wdi5.Log.info(`[browser wdi5] control with id: ${id} located!`); const aProtoFunctions = window.wdi5.retrieveControlMethods(ui5Control); // @type [String, String?, String, "Array of Strings"] returnElements.push({ domElement: domElement, id: id, aProtoFunctions: aProtoFunctions }); }); return { status: 0, result: returnElements }; }, controlSelector); } export { clientSide_allControls }; //# sourceMappingURL=allControls.js.map