UNPKG

tlc-core-automation-framework-v3-wdio-v9

Version:

Background: - We are following multi-layer automation framework architecture using webdriver.io + cucumber + typescript This core framework has been implemented with generic utility functions and cucumber steps, which can be easily consumed by another fra

39 lines (34 loc) 1.57 kB
import waitForElementState from "./waitForElementState"; import {PageConfigTypes} from "../../../custom-types/pageConfig-types"; import logger from "../../reporting-helpers/logger"; import {browser, $, $$, expect} from '@wdio/globals' import he from "he"; // export default async function (pageConfig: PageConfigTypes, elementState: string = 'Existing') { // await waitForElementState(pageConfig, false, elementState, 5, 1000); // let elementText = ""; // // const element = await $(pageConfig.selector); // // @ts-ignore // const refinedHtmlText = await browser.execute((el) => el.textContent, element); // elementText = he.decode(refinedHtmlText); // logger.info(`Element "${pageConfig.elementKey}" has text "${elementText}"`); // return elementText; // } export default async function (pageConfig: PageConfigTypes, elementState: string = 'Existing') { await waitForElementState(pageConfig, false, elementState, 5, 1000); let elementText = ""; let htmlContent = ""; if (await $(pageConfig.selector).isDisplayed()) elementText = await $(pageConfig.selector).getText(); else { htmlContent = await $(pageConfig.selector).getHTML(); if (htmlContent.trim() == "") { const element = $(pageConfig.selector); // @ts-ignore htmlContent = await browser.execute((el) => el.textContent, element); } elementText = he.decode(htmlContent); } logger.info(`Element "${pageConfig.elementKey}" has text "${elementText}"`); return elementText; }