UNPKG

glance-selector

Version:
56 lines (43 loc) 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _xpath = require("./lib/xpath"); var _xpath2 = _interopRequireDefault(_xpath); var _arrayUtils = require("../utils/array-utils"); var _log = require("../log"); var _log2 = _interopRequireDefault(_log); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { locator: { check: function check(_ref) { var label = _ref.label, target = _ref.target; var attributes = target.properties.filter(function (p) { return isNaN(p) && p.indexOf("attribute-") > -1; }); return attributes.length > 0; }, locate: function locate(_ref2) { var label = _ref2.label, target = _ref2.target, scopeElement = _ref2.scopeElement; var resultHandler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (err, result) { return result; }; var attributes = target.properties.filter(function (p) { return isNaN(p) && p.indexOf("attribute-") > -1; }); if (attributes.length > 0) { return (0, _arrayUtils.reduce)(attributes, [], function (result, attribute, callback) { var key = attribute.slice("attribute-".length); _log2.default.debug("Searching " + key + " attribute:", label); return (0, _xpath2.default)(".//*[contains(translate(@" + key + ", 'ABCDEFGHJIKLMNOPQRSTUVWXYZ', 'abcdefghjiklmnopqrstuvwxyz'), translate('" + label + "', 'ABCDEFGHJIKLMNOPQRSTUVWXYZ', 'abcdefghjiklmnopqrstuvwxyz'))]", scopeElement, function (err, r) { return callback(err, result.concat(r)); }); }, resultHandler); } return resultHandler(null, []); } } };