/**
*
* 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= |