UNPKG

@luminati-io/webdriverio8

Version:

Next-gen browser and mobile automation test framework for Node.js

53 lines (51 loc) 3.13 kB
import { ELEMENT_KEY } from '../../constants.js'; import { getBrowserObject } from '../../utils/index.js'; const getWebElement = (el) => ({ [ELEMENT_KEY]: el.elementId, // w3c compatible ELEMENT: el.elementId // jsonwp compatible }); /** * * Return true if the selected element matches with the provided one. * * <example> :isEqual.js it('should detect if an element is clickable', async () => { const el = await $('#el') const sameEl = await $('#el') const anotherEl = await $('#anotherEl') el.isEqual(sameEl) // outputs: true el.isEqual(anotherEl) // outputs: false }); * </example> * * @alias element.isEqual * @param {Element} el element to compare with * @return {Boolean} true if elements are equal * */ export async function isEqual(el) { const browser = getBrowserObject(this); // mobile native if (browser.isMobile) { const context = await browser.getContext(); const contextId = typeof context === 'string' ? context : context?.id; if (contextId && contextId.toLowerCase().includes('native')) { return this.elementId === el.elementId; } } // browser or webview let result; try { result = await browser.execute( /* istanbul ignore next */ function (el1, el2) { return el1 === el2; }, getWebElement(this), getWebElement(el)); } catch (err) { result = false; } return result; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFcXVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9lbGVtZW50L2lzRXF1YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXZELE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCO0lBQzlDLE9BQU8sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLG9CQUFvQjtDQUM3QyxDQUFDLENBQUE7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBRXpCLEVBQXVCO0lBRXZCLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXRDLGdCQUFnQjtJQUNoQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRO1lBQ3pDLENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7UUFFakIsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFBO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLElBQUksTUFBZSxDQUFBO0lBQ25CLElBQUksQ0FBQztRQUNELE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPO1FBQzFCLDBCQUEwQjtRQUMxQixVQUFVLEdBQXdCLEVBQUUsR0FBd0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUEsQ0FBQyxDQUFDLEVBQ3BGLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNqQixDQUFDIn0=