UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

94 lines (81 loc) 6.5 kB
/** * * Get the text content from a DOM-element found by given selector. Make sure the element * you want to request the text from [is interactable](http://www.w3.org/TR/webdriver/#interactable) * otherwise you will get an empty string as return value. If the element is disabled or not * visible and you still want to receive the text content use [getHTML](http://webdriver.io/api/property/getHTML.html) * as a workaround. * * <example> :index.html <div id="elem"> Lorem ipsum <strong>dolor</strong> sit amet,<br> consetetur sadipscing elitr </div> &nbsp; <span style="display: none">I am invisible</span> :getText.js client.getText('#elem').then(function(text) { console.log(text); // outputs the following: // "Lorem ipsum dolor sit amet,consetetur sadipscing elitr" }) .getText('span').then(function(text) { console.log(text); // outputs "" (empty string) since element is not interactable }); * </example> * * @param {String} selector element with requested text * @returns {String|String[]} content of selected element (all HTML tags are removed) * * @uses protocol/elements, protocol/elementIdText * @type property * */ 'use strict'; var _getIterator = require('babel-runtime/core-js/get-iterator')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _utilsErrorHandler = require('../utils/ErrorHandler'); var getText = function getText(selector) { var _this = this; 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 elementIdTextCommands = []; 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; elementIdTextCommands.push(_this.elementIdText(elem.ELEMENT)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return _this.unify(elementIdTextCommands, { extractValue: true }); }); }; exports['default'] = getText; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9nZXRUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FxQzZCLHVCQUF1Qjs7QUFFcEQsSUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLENBQWEsUUFBUSxFQUFFOzs7QUFDOUIsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSzs7OztBQUl6QyxZQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7QUFDdEMsa0JBQU0sb0NBQWlCLENBQUMsQ0FBQyxDQUFBO1NBQzVCOztBQUVELFlBQUkscUJBQXFCLEdBQUcsRUFBRSxDQUFBOzs7Ozs7QUFDOUIsOENBQWlCLEdBQUcsQ0FBQyxLQUFLLDRHQUFFO29CQUFuQixJQUFJOztBQUNULHFDQUFxQixDQUFDLElBQUksQ0FBQyxNQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTthQUMvRDs7Ozs7Ozs7Ozs7Ozs7OztBQUVELGVBQU8sTUFBSyxLQUFLLENBQUMscUJBQXFCLEVBQUU7QUFDckMsd0JBQVksRUFBRSxJQUFJO1NBQ3JCLENBQUMsQ0FBQTtLQUNMLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLE9BQU8iLCJmaWxlIjoiZ2V0VGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIEdldCB0aGUgdGV4dCBjb250ZW50IGZyb20gYSBET00tZWxlbWVudCBmb3VuZCBieSBnaXZlbiBzZWxlY3Rvci4gTWFrZSBzdXJlIHRoZSBlbGVtZW50XG4gKiB5b3Ugd2FudCB0byByZXF1ZXN0IHRoZSB0ZXh0IGZyb20gW2lzIGludGVyYWN0YWJsZV0oaHR0cDovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNpbnRlcmFjdGFibGUpXG4gKiBvdGhlcndpc2UgeW91IHdpbGwgZ2V0IGFuIGVtcHR5IHN0cmluZyBhcyByZXR1cm4gdmFsdWUuIElmIHRoZSBlbGVtZW50IGlzIGRpc2FibGVkIG9yIG5vdFxuICogdmlzaWJsZSBhbmQgeW91IHN0aWxsIHdhbnQgdG8gcmVjZWl2ZSB0aGUgdGV4dCBjb250ZW50IHVzZSBbZ2V0SFRNTF0oaHR0cDovL3dlYmRyaXZlci5pby9hcGkvcHJvcGVydHkvZ2V0SFRNTC5odG1sKVxuICogYXMgYSB3b3JrYXJvdW5kLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDppbmRleC5odG1sXG4gICAgPGRpdiBpZD1cImVsZW1cIj5cbiAgICAgICAgTG9yZW0gaXBzdW0gPHN0cm9uZz5kb2xvcjwvc3Ryb25nPiBzaXQgYW1ldCw8YnI+XG4gICAgICAgIGNvbnNldGV0dXIgc2FkaXBzY2luZyBlbGl0clxuICAgIDwvZGl2PlxuICAgICZuYnNwO1xuICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPkkgYW0gaW52aXNpYmxlPC9zcGFuPlxuXG4gICAgOmdldFRleHQuanNcbiAgICBjbGllbnQuZ2V0VGV4dCgnI2VsZW0nKS50aGVuKGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICAgIC8vIG91dHB1dHMgdGhlIGZvbGxvd2luZzpcbiAgICAgICAgLy8gXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCxjb25zZXRldHVyIHNhZGlwc2NpbmcgZWxpdHJcIlxuICAgIH0pXG4gICAgLmdldFRleHQoJ3NwYW4nKS50aGVuKGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICAgIC8vIG91dHB1dHMgXCJcIiAoZW1wdHkgc3RyaW5nKSBzaW5jZSBlbGVtZW50IGlzIG5vdCBpbnRlcmFjdGFibGVcbiAgICB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0gICB7U3RyaW5nfSAgICAgICAgICAgc2VsZWN0b3IgICBlbGVtZW50IHdpdGggcmVxdWVzdGVkIHRleHRcbiAqIEByZXR1cm5zIHtTdHJpbmd8U3RyaW5nW119ICAgICAgICAgICAgIGNvbnRlbnQgb2Ygc2VsZWN0ZWQgZWxlbWVudCAoYWxsIEhUTUwgdGFncyBhcmUgcmVtb3ZlZClcbiAqXG4gKiBAdXNlcyBwcm90b2NvbC9lbGVtZW50cywgcHJvdG9jb2wvZWxlbWVudElkVGV4dFxuICogQHR5cGUgcHJvcGVydHlcbiAqXG4gKi9cblxuaW1wb3J0IHsgQ29tbWFuZEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgZ2V0VGV4dCA9IGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzKHNlbGVjdG9yKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHRocm93IE5vU3VjaEVsZW1lbnQgZXJyb3IgaWYgbm8gZWxlbWVudCB3YXMgZm91bmRcbiAgICAgICAgICovXG4gICAgICAgIGlmICghcmVzLnZhbHVlIHx8IHJlcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoNylcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbGVtZW50SWRUZXh0Q29tbWFuZHMgPSBbXVxuICAgICAgICBmb3IgKGxldCBlbGVtIG9mIHJlcy52YWx1ZSkge1xuICAgICAgICAgICAgZWxlbWVudElkVGV4dENvbW1hbmRzLnB1c2godGhpcy5lbGVtZW50SWRUZXh0KGVsZW0uRUxFTUVOVCkpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy51bmlmeShlbGVtZW50SWRUZXh0Q29tbWFuZHMsIHtcbiAgICAgICAgICAgIGV4dHJhY3RWYWx1ZTogdHJ1ZVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFRleHRcbiJdfQ==