@testim/testim-cli
Version:
Command line interface for running Testing on you CI
82 lines (72 loc) • 6.14 kB
JavaScript
/**
*
* 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
*
*/
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var selectByValue = function selectByValue(selectElem, value) {
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9zZWxlY3RCeVZhbHVlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FvQzZCLHVCQUF1Qjs7QUFFcEQsSUFBSSxhQUFhLEdBQUcsU0FBaEIsYUFBYSxDQUFhLFVBQVUsRUFBRSxLQUFLLEVBQUU7Ozs7OztBQUk3QyxRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUMzQixhQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0tBQzNCOzs7OztBQUtELFFBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3RCxjQUFNLDBHQUFzRixDQUFBO0tBQy9GOzs7OztBQUtELFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUs7Ozs7QUFJMUMsWUFBSSxVQUFVLEdBQUcsOEJBQThCLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQTtBQUNyRSxlQUFPLE1BQUssZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLGVBQWEsVUFBVSwwQkFBcUIsVUFBVSxDQUFHLENBQUE7S0FDMUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSzs7OztBQUliLGVBQU8sTUFBSyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtLQUNoRCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxhQUFhIiwiZmlsZSI6InNlbGVjdEJ5VmFsdWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBTZWxlY3Qgb3B0aW9uIHdpdGggYSBzcGVjaWZpYyB2YWx1ZS5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICA6ZXhhbXBsZS5odG1sXG4gICAgPHNlbGVjdCBpZD1cInNlbGVjdGJveFwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlMFwiPnVubzwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlMVwiPmRvczwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlMlwiPnRyZXM8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTNcIj5jdWF0cm88L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNvbWVWYWx1ZTRcIj5jaW5jbzwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwic29tZVZhbHVlNVwiPnNlaXM8L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cblxuICAgIDpzZWxlY3RCeVZhbHVlLmpzXG4gICAgY2xpZW50XG4gICAgICAgIC5nZXRWYWx1ZSgnI3NlbGVjdGJveCcpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHJldHVybnMgXCJzb21lVmFsdWUwXCJcbiAgICAgICAgfSlcbiAgICAgICAgLnNlbGVjdEJ5VmFsdWUoJyNzZWxlY3Rib3gnLCAnc29tZVZhbHVlMycpXG4gICAgICAgIC5nZXRWYWx1ZSgnI3NlbGVjdGJveCcpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHJldHVybnMgXCJzb21lVmFsdWUzXCJcbiAgICAgICAgfSk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdEVsZW0gc2VsZWN0IGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgb3B0aW9uc1xuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlICAgICAgdmFsdWUgb2Ygb3B0aW9uIGVsZW1lbnQgdG8gZ2V0IHNlbGVjdGVkXG4gKlxuICogQHVzZXMgcHJvdG9jb2wvZWxlbWVudCwgcHJvdG9jb2wvZWxlbWVudElkQ2xpY2ssIHByb3RvY29sL2VsZW1lbnRJZEVsZW1lbnRcbiAqIEB0eXBlIGFjdGlvblxuICpcbiAqL1xuXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBzZWxlY3RCeVZhbHVlID0gZnVuY3Rpb24gKHNlbGVjdEVsZW0sIHZhbHVlKSB7XG4gICAgLyoqXG4gICAgICogY29udmVydCB2YWx1ZSBpbnRvIHN0cmluZ1xuICAgICAqL1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIC8qIVxuICAgICAqIHBhcmFtZXRlciBjaGVja1xuICAgICAqL1xuICAgIGlmICh0eXBlb2Ygc2VsZWN0RWxlbSAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbWFuZEVycm9yKGBudW1iZXIgb3IgdHlwZSBvZiBhcmd1bWVudHMgZG9uJ3QgYWdyZWUgd2l0aCBzZWxlY3RCeVZhbHVlIGNvbW1hbmRgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBvcHRpb25zIGVsZW1lbnQgYnkgeHBhdGhcbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5lbGVtZW50KHNlbGVjdEVsZW0pLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogZmluZCBvcHRpb24gZWxlbSB1c2luZyB4cGF0aFxuICAgICAgICAgKi9cbiAgICAgICAgdmFyIG5vcm1hbGl6ZWQgPSAnW25vcm1hbGl6ZS1zcGFjZShAdmFsdWUpID0gXCInICsgdmFsdWUudHJpbSgpICsgJ1wiXSdcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkRWxlbWVudChyZXMudmFsdWUuRUxFTUVOVCwgYC4vb3B0aW9uJHtub3JtYWxpemVkfXwuL29wdGdyb3VwL29wdGlvbiR7bm9ybWFsaXplZH1gKVxuICAgIH0pLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogc2VsZWN0IG9wdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudElkQ2xpY2socmVzLnZhbHVlLkVMRU1FTlQpXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2VsZWN0QnlWYWx1ZVxuIl19