UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

75 lines (66 loc) 5.85 kB
/** * * Select option that display text matching the argument. * * <example> :example.html <select id="selectbox"> <option value="someValue0">uno</option> <option value="someValue1">dos</option> <option value="someValue2">tres</option> <option value="someValue3">cuatro</option> <option value="someValue4">cinco</option> <option value="someValue5">seis</option> </select> :selectByVisibleText.js client .getText('#selectbox option:checked').then(function(value) { console.log(value); // returns "uno" }) .selectByVisibleText('#selectbox', 'cuatro') .getText('#selectbox option:checked').then(function(value) { console.log(value); // returns "cuatro" }); * </example> * * @param {String} selectElem select element that contains the options * @param {String} text text of option element to get selected * * @uses protocol/element, protocol/elementIdClick, protocol/elementIdElement * @type action * */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _utilsErrorHandler = require('../utils/ErrorHandler'); var selectByVisibleText = function selectByVisibleText(selectElem, text) { var _this = this; /*! * parameter check */ if (typeof selectElem !== 'string' || typeof text !== 'string') { throw new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with selectByVisibleText command'); } /** * get select element */ return this.element(selectElem).then(function (res) { /** * find option elem using xpath */ var normalized = '[normalize-space(.) = "' + text.trim() + '"]'; return _this.elementIdElement(res.value.ELEMENT, './option' + normalized + '|./optgroup/option' + normalized); }).then(function (res) { /** * select option */ return _this.elementIdClick(res.value.ELEMENT); }); }; exports['default'] = selectByVisibleText; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9zZWxlY3RCeVZpc2libGVUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FvQzZCLHVCQUF1Qjs7QUFFcEQsSUFBSSxtQkFBbUIsR0FBRyxTQUF0QixtQkFBbUIsQ0FBYSxVQUFVLEVBQUUsSUFBSSxFQUFFOzs7Ozs7QUFJbEQsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQzVELGNBQU0sZ0hBQTRGLENBQUE7S0FDckc7Ozs7O0FBS0QsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSzs7OztBQUkxQyxZQUFJLFVBQVUsR0FBRyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBQy9ELGVBQU8sTUFBSyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sZUFBYSxVQUFVLDBCQUFxQixVQUFVLENBQUcsQ0FBQTtLQUMxRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLOzs7O0FBSWIsZUFBTyxNQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ2hELENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLG1CQUFtQiIsImZpbGUiOiJzZWxlY3RCeVZpc2libGVUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogU2VsZWN0IG9wdGlvbiB0aGF0IGRpc3BsYXkgdGV4dCBtYXRjaGluZyB0aGUgYXJndW1lbnQuXG4gKlxuICogPGV4YW1wbGU+XG4gICAgOmV4YW1wbGUuaHRtbFxuICAgIDxzZWxlY3QgaWQ9XCJzZWxlY3Rib3hcIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTBcIj51bm88L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTFcIj5kb3M8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTJcIj50cmVzPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWUzXCI+Y3VhdHJvPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWU0XCI+Y2luY288L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTVcIj5zZWlzPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG5cbiAgICA6c2VsZWN0QnlWaXNpYmxlVGV4dC5qc1xuICAgIGNsaWVudFxuICAgICAgICAuZ2V0VGV4dCgnI3NlbGVjdGJveCBvcHRpb246Y2hlY2tlZCcpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHJldHVybnMgXCJ1bm9cIlxuICAgICAgICB9KVxuICAgICAgICAuc2VsZWN0QnlWaXNpYmxlVGV4dCgnI3NlbGVjdGJveCcsICdjdWF0cm8nKVxuICAgICAgICAuZ2V0VGV4dCgnI3NlbGVjdGJveCBvcHRpb246Y2hlY2tlZCcpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHJldHVybnMgXCJjdWF0cm9cIlxuICAgICAgICB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0RWxlbSBzZWxlY3QgZWxlbWVudCB0aGF0IGNvbnRhaW5zIHRoZSBvcHRpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCAgICAgICB0ZXh0IG9mIG9wdGlvbiBlbGVtZW50IHRvIGdldCBzZWxlY3RlZFxuICpcbiAqIEB1c2VzIHByb3RvY29sL2VsZW1lbnQsIHByb3RvY29sL2VsZW1lbnRJZENsaWNrLCBwcm90b2NvbC9lbGVtZW50SWRFbGVtZW50XG4gKiBAdHlwZSBhY3Rpb25cbiAqXG4gKi9cblxuaW1wb3J0IHsgQ29tbWFuZEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgc2VsZWN0QnlWaXNpYmxlVGV4dCA9IGZ1bmN0aW9uIChzZWxlY3RFbGVtLCB0ZXh0KSB7XG4gICAgLyohXG4gICAgICogcGFyYW1ldGVyIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBzZWxlY3RFbGVtICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgdGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRFcnJvcihgbnVtYmVyIG9yIHR5cGUgb2YgYXJndW1lbnRzIGRvbid0IGFncmVlIHdpdGggc2VsZWN0QnlWaXNpYmxlVGV4dCBjb21tYW5kYClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgc2VsZWN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5lbGVtZW50KHNlbGVjdEVsZW0pLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogZmluZCBvcHRpb24gZWxlbSB1c2luZyB4cGF0aFxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIG5vcm1hbGl6ZWQgPSAnW25vcm1hbGl6ZS1zcGFjZSguKSA9IFwiJyArIHRleHQudHJpbSgpICsgJ1wiXSdcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkRWxlbWVudChyZXMudmFsdWUuRUxFTUVOVCwgYC4vb3B0aW9uJHtub3JtYWxpemVkfXwuL29wdGdyb3VwL29wdGlvbiR7bm9ybWFsaXplZH1gKVxuICAgIH0pLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogc2VsZWN0IG9wdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkQ2xpY2socmVzLnZhbHVlLkVMRU1FTlQpXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2VsZWN0QnlWaXNpYmxlVGV4dFxuIl19