@testim/testim-cli
Version:
Command line interface for running Testing on you CI
75 lines (66 loc) • 5.85 kB
JavaScript
/**
*
* 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
*
*/
;
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