all files / DEV/lib/commands/ selectByValue.js

92.86% Statements 13/14
33.33% Branches 2/6
0% Functions 0/3
66.67% Lines 2/3
8 statements, 2 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83                                                                                                                                                                   
/**
 *
 * Select option with a specific value.
 *
 * <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>
 
    :selectByValue.js
    client
        .getValue('#selectbox').then(function(value) {
            console.log(value);
            // returns "someValue0"
        })
        .selectByValue('#selectbox', 'someValue3')
        .getValue('#selectbox').then(function(value) {
            console.log(value);
            // returns "someValue3"
        });
 * </example>
 *
 * @param {String} selectElem select element that contains the options
 * @param {String} value      value 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 selectByValue = function selectByValue(selectElem, value) {
    // istanbul ignore next
 
    var _this = this;
 
    /**
     * convert value into string
     */
    if (typeof value === 'number') {
        value = value.toString();
    }
 
    /*!
     * parameter check
     */
    if (typeof selectElem !== 'string' || typeof value !== 'string') {
        throw new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with selectByValue command');
    }

    /**
     * get options element by xpath
     */
    return this.element(selectElem).then(function (res) {
        /**
         * find option elem using xpath
         */
        var normalized = '[normalize-space(@value) = "' + value.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'] = selectByValue;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvc2VsZWN0QnlWYWx1ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBb0M2Qix1QkFBdUI7O0FBRXBELElBQUksYUFBYSxHQUFHLFNBQWhCLGFBQWEsQ0FBYSxVQUFVLEVBQUUsS0FBSyxFQUFFOzs7Ozs7OztBQUk3QyxRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUMzQixhQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0tBQzNCOzs7OztBQUtELFFBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3RCxjQUFNLDBHQUFzRixDQUFBO0tBQy9GOzs7OztBQUtELFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUs7Ozs7QUFJMUMsWUFBSSxVQUFVLEdBQUcsOEJBQThCLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtBQUNyRSxlQUFPLE1BQUssZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLGVBQWEsVUFBVSwwQkFBcUIsVUFBVSxDQUFHLENBQUE7S0FDMUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSzs7OztBQUliLGVBQU8sTUFBSyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUNoRCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxhQUFhIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvc2VsZWN0QnlWYWx1ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIFNlbGVjdCBvcHRpb24gd2l0aCBhIHNwZWNpZmljIHZhbHVlLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDpleGFtcGxlLmh0bWxcbiAgICA8c2VsZWN0IGlkPVwic2VsZWN0Ym94XCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWUwXCI+dW5vPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWUxXCI+ZG9zPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWUyXCI+dHJlczwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlM1wiPmN1YXRybzwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlNFwiPmNpbmNvPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzb21lVmFsdWU1XCI+c2Vpczwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuXG4gICAgOnNlbGVjdEJ5VmFsdWUuanNcbiAgICBjbGllbnRcbiAgICAgICAgLmdldFZhbHVlKCcjc2VsZWN0Ym94JykudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAgICAgICAgLy8gcmV0dXJucyBcInNvbWVWYWx1ZTBcIlxuICAgICAgICB9KVxuICAgICAgICAuc2VsZWN0QnlWYWx1ZSgnI3NlbGVjdGJveCcsICdzb21lVmFsdWUzJylcbiAgICAgICAgLmdldFZhbHVlKCcjc2VsZWN0Ym94JykudGhlbihmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAgICAgICAgLy8gcmV0dXJucyBcInNvbWVWYWx1ZTNcIlxuICAgICAgICB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0RWxlbSBzZWxlY3QgZWxlbWVudCB0aGF0IGNvbnRhaW5zIHRoZSBvcHRpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgICAgICB2YWx1ZSBvZiBvcHRpb24gZWxlbWVudCB0byBnZXQgc2VsZWN0ZWRcbiAqXG4gKiBAdXNlcyBwcm90b2NvbC9lbGVtZW50LCBwcm90b2NvbC9lbGVtZW50SWRDbGljaywgcHJvdG9jb2wvZWxlbWVudElkRWxlbWVudFxuICogQHR5cGUgYWN0aW9uXG4gKlxuICovXG5cbmltcG9ydCB7IENvbW1hbmRFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IHNlbGVjdEJ5VmFsdWUgPSBmdW5jdGlvbiAoc2VsZWN0RWxlbSwgdmFsdWUpIHtcbiAgICAvKipcbiAgICAgKiBjb252ZXJ0IHZhbHVlIGludG8gc3RyaW5nXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpXG4gICAgfVxuXG4gICAgLyohXG4gICAgICogcGFyYW1ldGVyIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBzZWxlY3RFbGVtICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoYG51bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb24ndCBhZ3JlZSB3aXRoIHNlbGVjdEJ5VmFsdWUgY29tbWFuZGApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IG9wdGlvbnMgZWxlbWVudCBieSB4cGF0aFxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQoc2VsZWN0RWxlbSkudGhlbigocmVzKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBmaW5kIG9wdGlvbiBlbGVtIHVzaW5nIHhwYXRoXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgbm9ybWFsaXplZCA9ICdbbm9ybWFsaXplLXNwYWNlKEB2YWx1ZSkgPSBcIicgKyB2YWx1ZS50cmltKCkgKyAnXCJdJ1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50SWRFbGVtZW50KHJlcy52YWx1ZS5FTEVNRU5ULCBgLi9vcHRpb24ke25vcm1hbGl6ZWR9fC4vb3B0Z3JvdXAvb3B0aW9uJHtub3JtYWxpemVkfWApXG4gICAgfSkudGhlbigocmVzKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBzZWxlY3Qgb3B0aW9uXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50SWRDbGljayhyZXMudmFsdWUuRUxFTUVOVClcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBzZWxlY3RCeVZhbHVlXG4iXX0=