@testim/testim-cli
Version:
Command line interface for running Testing on you CI
93 lines (79 loc) • 6.65 kB
JavaScript
/**
*
* Send a sequence of key strokes to an element (clears value before). You can also use
* unicode characters like Left arrow or Back space. WebdriverIO will take care of
* translating them into unicode characters. You’ll find all supported characters
* [here](https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value).
* To do that, the value has to correspond to a key from the table.
*
* <example>
:setValue.js
client
.setValue('.input', 'test123')
.getValue('.input').then(function(value) {
assert(value === 'test123'); // true
});
* </example>
*
* @param {String} selector Input element
* @param {String|Number=} values Input element
*
* @uses protocol/elements, protocol/elementIdClear, protocol/elementIdValue
* @type action
*
*/
;
var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var setValue = function setValue(selector, value) {
var _this = this;
/*!
* parameter check
*/
if (typeof value === 'number') {
value = value.toString();
}
if (typeof value !== 'string' && !Array.isArray(value)) {
throw new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with setValue command');
}
return this.elements(selector).then(function (res) {
/**
* throw NoSuchElement error if no element was found
*/
if (!res.value || res.value.length === 0) {
throw new _utilsErrorHandler.CommandError(7);
}
var elementIdValueCommands = [];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = _getIterator(res.value), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var elem = _step.value;
elementIdValueCommands.push(_this.elementIdClear(elem.ELEMENT).elementIdValue(elem.ELEMENT, value));
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return _this.unify(elementIdValueCommands, {
extractValue: true
});
});
};
exports['default'] = setValue;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9zZXRWYWx1ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBeUI2Qix1QkFBdUI7O0FBRXBELElBQUksUUFBUSxHQUFHLFNBQVgsUUFBUSxDQUFhLFFBQVEsRUFBRSxLQUFLLEVBQUU7Ozs7OztBQUl0QyxRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUMzQixhQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0tBQzNCOztBQUVELFFBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNwRCxjQUFNLG9DQUFpQixnRUFBZ0UsQ0FBQyxDQUFBO0tBQzNGOztBQUVELFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUs7Ozs7QUFJekMsWUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQ3RDLGtCQUFNLG9DQUFpQixDQUFDLENBQUMsQ0FBQTtTQUM1Qjs7QUFFRCxZQUFJLHNCQUFzQixHQUFHLEVBQUUsQ0FBQTs7Ozs7O0FBQy9CLDhDQUFpQixHQUFHLENBQUMsS0FBSyw0R0FBRTtvQkFBbkIsSUFBSTs7QUFDVCxzQ0FBc0IsQ0FBQyxJQUFJLENBQUMsTUFBSyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7YUFDckc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRCxlQUFPLE1BQUssS0FBSyxDQUFDLHNCQUFzQixFQUFFO0FBQ3RDLHdCQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUE7S0FDTCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxRQUFRIiwiZmlsZSI6InNldFZhbHVlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogU2VuZCBhIHNlcXVlbmNlIG9mIGtleSBzdHJva2VzIHRvIGFuIGVsZW1lbnQgKGNsZWFycyB2YWx1ZSBiZWZvcmUpLiBZb3UgY2FuIGFsc28gdXNlXG4gKiB1bmljb2RlIGNoYXJhY3RlcnMgbGlrZSBMZWZ0IGFycm93IG9yIEJhY2sgc3BhY2UuIFdlYmRyaXZlcklPIHdpbGwgdGFrZSBjYXJlIG9mXG4gKiB0cmFuc2xhdGluZyB0aGVtIGludG8gdW5pY29kZSBjaGFyYWN0ZXJzLiBZb3XigJlsbCBmaW5kIGFsbCBzdXBwb3J0ZWQgY2hhcmFjdGVyc1xuICogW2hlcmVdKGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sIy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86aWQvdmFsdWUpLlxuICogVG8gZG8gdGhhdCwgdGhlIHZhbHVlIGhhcyB0byBjb3JyZXNwb25kIHRvIGEga2V5IGZyb20gdGhlIHRhYmxlLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDpzZXRWYWx1ZS5qc1xuICAgIGNsaWVudFxuICAgICAgICAuc2V0VmFsdWUoJy5pbnB1dCcsICd0ZXN0MTIzJylcbiAgICAgICAgLmdldFZhbHVlKCcuaW5wdXQnKS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICBhc3NlcnQodmFsdWUgPT09ICd0ZXN0MTIzJyk7IC8vIHRydWVcbiAgICAgICAgfSk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICAgICAgICAgc2VsZWN0b3IgICBJbnB1dCBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXI9fSB2YWx1ZXMgICAgIElucHV0IGVsZW1lbnRcbiAqXG4gKiBAdXNlcyBwcm90b2NvbC9lbGVtZW50cywgcHJvdG9jb2wvZWxlbWVudElkQ2xlYXIsIHByb3RvY29sL2VsZW1lbnRJZFZhbHVlXG4gKiBAdHlwZSBhY3Rpb25cbiAqXG4gKi9cblxuaW1wb3J0IHsgQ29tbWFuZEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgc2V0VmFsdWUgPSBmdW5jdGlvbiAoc2VsZWN0b3IsIHZhbHVlKSB7XG4gICAgLyohXG4gICAgICogcGFyYW1ldGVyIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggc2V0VmFsdWUgY29tbWFuZCcpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudHMoc2VsZWN0b3IpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogdGhyb3cgTm9TdWNoRWxlbWVudCBlcnJvciBpZiBubyBlbGVtZW50IHdhcyBmb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFyZXMudmFsdWUgfHwgcmVzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1hbmRFcnJvcig3KVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVsZW1lbnRJZFZhbHVlQ29tbWFuZHMgPSBbXVxuICAgICAgICBmb3IgKGxldCBlbGVtIG9mIHJlcy52YWx1ZSkge1xuICAgICAgICAgICAgZWxlbWVudElkVmFsdWVDb21tYW5kcy5wdXNoKHRoaXMuZWxlbWVudElkQ2xlYXIoZWxlbS5FTEVNRU5UKS5lbGVtZW50SWRWYWx1ZShlbGVtLkVMRU1FTlQsIHZhbHVlKSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZ5KGVsZW1lbnRJZFZhbHVlQ29tbWFuZHMsIHtcbiAgICAgICAgICAgIGV4dHJhY3RWYWx1ZTogdHJ1ZVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNldFZhbHVlXG4iXX0=