UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

48 lines (37 loc) 4.47 kB
/** * Search for an element on the page, starting from the document root. * The located element will be returned as a WebElement JSON object. * The table below lists the locator strategies that each server should support. * Each locator must return the first matching element located in the DOM. * * @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element * * @param {String} selector selector to query the element * @returns {String} A WebElement JSON object for the located element. * * @type protocol * */ 'use strict'; 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 element = function element(selector) { var requestPath = '/session/:sessionId/element'; var lastPromise = this.lastPromise.inspect(); if (lastPromise.state === 'fulfilled' && lastPromise.value && lastPromise.value.value && lastPromise.value.value.ELEMENT) { if (!selector) { return lastPromise.value; } var elem = lastPromise.value.value.ELEMENT; requestPath = '/session/:sessionId/element/' + elem + '/element'; } var found = (0, _helpersFindElementStrategy2['default'])(selector); return this.requestHandler.create(requestPath, { using: found.using, value: found.value }); }; exports['default'] = element; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC9lbGVtZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBDQWV5QixnQ0FBZ0M7Ozs7QUFFekQsSUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLENBQWEsUUFBUSxFQUFFO0FBQzlCLFFBQUksV0FBVyxHQUFHLDZCQUE2QixDQUFBO0FBQy9DLFFBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUE7O0FBRTVDLFFBQUksV0FBVyxDQUFDLEtBQUssS0FBSyxXQUFXLElBQUksV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDdEgsWUFBSSxDQUFDLFFBQVEsRUFBRTtBQUNYLG1CQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUE7U0FDM0I7O0FBRUQsWUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFBO0FBQzFDLG1CQUFXLG9DQUFrQyxJQUFJLGFBQVUsQ0FBQTtLQUM5RDs7QUFFRCxRQUFJLEtBQUssR0FBRyw2Q0FBYSxRQUFRLENBQUMsQ0FBQTtBQUNsQyxXQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUM3QixXQUFXLEVBQ1gsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUM3QyxDQUFBO0NBQ0osQ0FBQTs7cUJBRWMsT0FBTyIsImZpbGUiOiJlbGVtZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZWFyY2ggZm9yIGFuIGVsZW1lbnQgb24gdGhlIHBhZ2UsIHN0YXJ0aW5nIGZyb20gdGhlIGRvY3VtZW50IHJvb3QuXG4gKiBUaGUgbG9jYXRlZCBlbGVtZW50IHdpbGwgYmUgcmV0dXJuZWQgYXMgYSBXZWJFbGVtZW50IEpTT04gb2JqZWN0LlxuICogVGhlIHRhYmxlIGJlbG93IGxpc3RzIHRoZSBsb2NhdG9yIHN0cmF0ZWdpZXMgdGhhdCBlYWNoIHNlcnZlciBzaG91bGQgc3VwcG9ydC5cbiAqIEVhY2ggbG9jYXRvciBtdXN0IHJldHVybiB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBsb2NhdGVkIGluIHRoZSBET00uXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yIHNlbGVjdG9yIHRvIHF1ZXJ5IHRoZSBlbGVtZW50XG4gKiBAcmV0dXJucyB7U3RyaW5nfSBBIFdlYkVsZW1lbnQgSlNPTiBvYmplY3QgZm9yIHRoZSBsb2NhdGVkIGVsZW1lbnQuXG4gKlxuICogQHR5cGUgcHJvdG9jb2xcbiAqXG4gKi9cblxuaW1wb3J0IGZpbmRTdHJhdGVneSBmcm9tICcuLi9oZWxwZXJzL2ZpbmRFbGVtZW50U3RyYXRlZ3knXG5cbmxldCBlbGVtZW50ID0gZnVuY3Rpb24gKHNlbGVjdG9yKSB7XG4gICAgbGV0IHJlcXVlc3RQYXRoID0gJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCdcbiAgICBsZXQgbGFzdFByb21pc2UgPSB0aGlzLmxhc3RQcm9taXNlLmluc3BlY3QoKVxuXG4gICAgaWYgKGxhc3RQcm9taXNlLnN0YXRlID09PSAnZnVsZmlsbGVkJyAmJiBsYXN0UHJvbWlzZS52YWx1ZSAmJiBsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZSAmJiBsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZS5FTEVNRU5UKSB7XG4gICAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBsYXN0UHJvbWlzZS52YWx1ZVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVsZW0gPSBsYXN0UHJvbWlzZS52YWx1ZS52YWx1ZS5FTEVNRU5UXG4gICAgICAgIHJlcXVlc3RQYXRoID0gYC9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC8ke2VsZW19L2VsZW1lbnRgXG4gICAgfVxuXG4gICAgbGV0IGZvdW5kID0gZmluZFN0cmF0ZWd5KHNlbGVjdG9yKVxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZShcbiAgICAgICAgcmVxdWVzdFBhdGgsXG4gICAgICAgIHsgdXNpbmc6IGZvdW5kLnVzaW5nLCB2YWx1ZTogZm91bmQudmFsdWUgfVxuICAgIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZWxlbWVudFxuIl19