UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

92 lines (77 loc) 6.06 kB
/** * * Get an attribute from an DOM-element based on the selector and attribute name. * Returns a list of attribute values if selector matches multiple elements. * * <example> :index.html <div data-type="example" id="elem"> Lorem ipsum dolor ammet </div> :getAttribute.js client.getAttribute('#elem', 'data-type').then(function(attr) { console.log(attr); // outputs: "example" }); * </example> * * @param {String} selector element with requested attribute * @param {String} attributeName requested attribute * * @returns {String|String[]|null} The value of the attribute(s), or null if it is not set on the element. * * @uses protocol/elements, protocol/elementIdAttribute * @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 getAttribute = function getAttribute(selector, attributeName) { var _this = this; /*! * parameter check */ if (typeof attributeName !== 'string') { throw new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with getAttribute 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 elementIdAttributeCommands = []; 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; elementIdAttributeCommands.push(_this.elementIdAttribute(elem.ELEMENT, attributeName)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return _this.unify(elementIdAttributeCommands, { extractValue: true }); }); }; exports['default'] = getAttribute; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9nZXRBdHRyaWJ1dGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBMkI2Qix1QkFBdUI7O0FBRXBELElBQUksWUFBWSxHQUFHLFNBQWYsWUFBWSxDQUFhLFFBQVEsRUFBRSxhQUFhLEVBQUU7Ozs7OztBQUlsRCxRQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRTtBQUNuQyxjQUFNLG9DQUFpQixvRUFBb0UsQ0FBQyxDQUFBO0tBQy9GOztBQUVELFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUs7Ozs7QUFJekMsWUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQ3RDLGtCQUFNLG9DQUFpQixDQUFDLENBQUMsQ0FBQTtTQUM1Qjs7QUFFRCxZQUFJLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTs7Ozs7OztBQUVuQyw4Q0FBaUIsR0FBRyxDQUFDLEtBQUssNEdBQUU7b0JBQW5CLElBQUk7O0FBQ1QsMENBQTBCLENBQUMsSUFBSSxDQUFDLE1BQUssa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBO2FBQ3hGOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUQsZUFBTyxNQUFLLEtBQUssQ0FBQywwQkFBMEIsRUFBRTtBQUMxQyx3QkFBWSxFQUFFLElBQUk7U0FDckIsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsWUFBWSIsImZpbGUiOiJnZXRBdHRyaWJ1dGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBHZXQgYW4gYXR0cmlidXRlIGZyb20gYW4gRE9NLWVsZW1lbnQgYmFzZWQgb24gdGhlIHNlbGVjdG9yIGFuZCBhdHRyaWJ1dGUgbmFtZS5cbiAqIFJldHVybnMgYSBsaXN0IG9mIGF0dHJpYnV0ZSB2YWx1ZXMgaWYgc2VsZWN0b3IgbWF0Y2hlcyBtdWx0aXBsZSBlbGVtZW50cy5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICA6aW5kZXguaHRtbFxuICAgIDxkaXYgZGF0YS10eXBlPVwiZXhhbXBsZVwiIGlkPVwiZWxlbVwiPlxuICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBhbW1ldFxuICAgIDwvZGl2PlxuXG4gICAgOmdldEF0dHJpYnV0ZS5qc1xuICAgIGNsaWVudC5nZXRBdHRyaWJ1dGUoJyNlbGVtJywgJ2RhdGEtdHlwZScpLnRoZW4oZnVuY3Rpb24oYXR0cikge1xuICAgICAgICBjb25zb2xlLmxvZyhhdHRyKTsgLy8gb3V0cHV0czogXCJleGFtcGxlXCJcbiAgICB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3IgICAgICBlbGVtZW50IHdpdGggcmVxdWVzdGVkIGF0dHJpYnV0ZVxuICogQHBhcmFtIHtTdHJpbmd9IGF0dHJpYnV0ZU5hbWUgcmVxdWVzdGVkIGF0dHJpYnV0ZVxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd8U3RyaW5nW118bnVsbH0gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUocyksIG9yIG51bGwgaWYgaXQgaXMgbm90IHNldCBvbiB0aGUgZWxlbWVudC5cbiAqXG4gKiBAdXNlcyBwcm90b2NvbC9lbGVtZW50cywgcHJvdG9jb2wvZWxlbWVudElkQXR0cmlidXRlXG4gKiBAdHlwZSBwcm9wZXJ0eVxuICpcbiAqL1xuXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBnZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbiAoc2VsZWN0b3IsIGF0dHJpYnV0ZU5hbWUpIHtcbiAgICAvKiFcbiAgICAgKiBwYXJhbWV0ZXIgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGF0dHJpYnV0ZU5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggZ2V0QXR0cmlidXRlIGNvbW1hbmQnKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzKHNlbGVjdG9yKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHRocm93IE5vU3VjaEVsZW1lbnQgZXJyb3IgaWYgbm8gZWxlbWVudCB3YXMgZm91bmRcbiAgICAgICAgICovXG4gICAgICAgIGlmICghcmVzLnZhbHVlIHx8IHJlcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoNylcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbGVtZW50SWRBdHRyaWJ1dGVDb21tYW5kcyA9IFtdXG5cbiAgICAgICAgZm9yIChsZXQgZWxlbSBvZiByZXMudmFsdWUpIHtcbiAgICAgICAgICAgIGVsZW1lbnRJZEF0dHJpYnV0ZUNvbW1hbmRzLnB1c2godGhpcy5lbGVtZW50SWRBdHRyaWJ1dGUoZWxlbS5FTEVNRU5ULCBhdHRyaWJ1dGVOYW1lKSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnVuaWZ5KGVsZW1lbnRJZEF0dHJpYnV0ZUNvbW1hbmRzLCB7XG4gICAgICAgICAgICBleHRyYWN0VmFsdWU6IHRydWVcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBdHRyaWJ1dGVcbiJdfQ==