webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
40 lines (28 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _getElementObject = require("../../utils/getElementObject");
var _utils = require("../../utils");
var _constants = require("../../constants");
async function custom$(strategyName, strategyArguments) {
const browserObject = (0, _utils.getBrowserObject)(this);
const strategy = browserObject.strategies.get(strategyName);
if (!strategy) {
throw Error('No strategy found for ' + strategyName);
}
if (!this.elementId) {
throw Error(`Can't call custom$ on element with selector "${this.selector}" because element wasn't found`);
}
let res = await this.execute(strategy, strategyArguments, this);
if (Array.isArray(res)) {
res = res[0];
}
if (res && typeof res[_constants.ELEMENT_KEY] === 'string') {
return await _getElementObject.getElement.call(this, strategy, res);
}
throw Error('Your locator strategy script must return an element');
}
var _default = custom$;
exports.default = _default;