UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

82 lines (72 loc) 6.14 kB
/** * * 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) { 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