@testim/testim-cli
Version:
Command line interface for running Testing on you CI
52 lines (41 loc) • 4.78 kB
JavaScript
/**
*
* Search for multiple elements on the page, starting from the document root. The located
* elements will be returned as a WebElement JSON objects. The table below lists the
* locator strategies that each server should support. Elements should be returned in
* the order located in the DOM.
*
* @param {String} selector selector to query the elements
* @returns {Object[]} A list of WebElement JSON objects for the located elements.
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/elements
* @type protocol
*
*/
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _helpersFindElementStrategy = require('../helpers/findElementStrategy');
var _helpersFindElementStrategy2 = _interopRequireDefault(_helpersFindElementStrategy);
var elements = function elements(selector) {
var requestPath = '/session/:sessionId/elements';
var lastPromise = this.lastPromise.inspect();
if (lastPromise.state === 'fulfilled' && lastPromise.value && lastPromise.value.value && lastPromise.value.value.ELEMENT) {
if (!selector) {
lastPromise.value.value = [lastPromise.value.value];
return lastPromise.value;
}
var elem = lastPromise.value.value.ELEMENT;
requestPath = '/session/:sessionId/element/' + elem + '/elements';
}
var found = (0, _helpersFindElementStrategy2['default'])(selector);
return this.requestHandler.create(requestPath, {
using: found.using,
value: found.value
});
};
exports['default'] = elements;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC9lbGVtZW50cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FleUIsZ0NBQWdDOzs7O0FBRXpELElBQUksUUFBUSxHQUFHLFNBQVgsUUFBUSxDQUFhLFFBQVEsRUFBRTtBQUMvQixRQUFJLFdBQVcsR0FBRyw4QkFBOEIsQ0FBQTtBQUNoRCxRQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBOztBQUU1QyxRQUFJLFdBQVcsQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0FBQ3RILFlBQUksQ0FBQyxRQUFRLEVBQUU7QUFDWCx1QkFBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ25ELG1CQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUE7U0FDM0I7O0FBRUQsWUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBO0FBQzFDLG1CQUFXLG9DQUFrQyxJQUFJLGNBQVcsQ0FBQTtLQUMvRDs7QUFFRCxRQUFJLEtBQUssR0FBRyw2Q0FBYSxRQUFRLENBQUMsQ0FBQTtBQUNsQyxXQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtBQUMzQyxhQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7QUFDbEIsYUFBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO0tBQ3JCLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLFFBQVEiLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBTZWFyY2ggZm9yIG11bHRpcGxlIGVsZW1lbnRzIG9uIHRoZSBwYWdlLCBzdGFydGluZyBmcm9tIHRoZSBkb2N1bWVudCByb290LiBUaGUgbG9jYXRlZFxuICogZWxlbWVudHMgd2lsbCBiZSByZXR1cm5lZCBhcyBhIFdlYkVsZW1lbnQgSlNPTiBvYmplY3RzLiBUaGUgdGFibGUgYmVsb3cgbGlzdHMgdGhlXG4gKiBsb2NhdG9yIHN0cmF0ZWdpZXMgdGhhdCBlYWNoIHNlcnZlciBzaG91bGQgc3VwcG9ydC4gRWxlbWVudHMgc2hvdWxkIGJlIHJldHVybmVkIGluXG4gKiB0aGUgb3JkZXIgbG9jYXRlZCBpbiB0aGUgRE9NLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvciBzZWxlY3RvciB0byBxdWVyeSB0aGUgZWxlbWVudHNcbiAqIEByZXR1cm5zIHtPYmplY3RbXX0gQSBsaXN0IG9mIFdlYkVsZW1lbnQgSlNPTiBvYmplY3RzIGZvciB0aGUgbG9jYXRlZCBlbGVtZW50cy5cbiAqXG4gKiBAc2VlICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCMvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnRzXG4gKiBAdHlwZSBwcm90b2NvbFxuICpcbiAqL1xuXG5pbXBvcnQgZmluZFN0cmF0ZWd5IGZyb20gJy4uL2hlbHBlcnMvZmluZEVsZW1lbnRTdHJhdGVneSdcblxubGV0IGVsZW1lbnRzID0gZnVuY3Rpb24gKHNlbGVjdG9yKSB7XG4gICAgbGV0IHJlcXVlc3RQYXRoID0gJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudHMnXG4gICAgbGV0IGxhc3RQcm9taXNlID0gdGhpcy5sYXN0UHJvbWlzZS5pbnNwZWN0KClcblxuICAgIGlmIChsYXN0UHJvbWlzZS5zdGF0ZSA9PT0gJ2Z1bGZpbGxlZCcgJiYgbGFzdFByb21pc2UudmFsdWUgJiYgbGFzdFByb21pc2UudmFsdWUudmFsdWUgJiYgbGFzdFByb21pc2UudmFsdWUudmFsdWUuRUxFTUVOVCkge1xuICAgICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgICAgICBsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZSA9IFtsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZV1cbiAgICAgICAgICAgIHJldHVybiBsYXN0UHJvbWlzZS52YWx1ZVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGVsZW0gPSBsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZS5FTEVNRU5UXG4gICAgICAgIHJlcXVlc3RQYXRoID0gYC9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC8ke2VsZW19L2VsZW1lbnRzYFxuICAgIH1cblxuICAgIGxldCBmb3VuZCA9IGZpbmRTdHJhdGVneShzZWxlY3RvcilcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUocmVxdWVzdFBhdGgsIHtcbiAgICAgICAgdXNpbmc6IGZvdW5kLnVzaW5nLFxuICAgICAgICB2YWx1ZTogZm91bmQudmFsdWVcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBlbGVtZW50c1xuIl19