glance-dom
Version:
Glance DOM library
48 lines (33 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _xpath = require('../lib/xpath');
var _xpath2 = _interopRequireDefault(_xpath);
var _log = require('../../utils/log');
var _log2 = _interopRequireDefault(_log);
var _reduce = require('@arr/reduce');
var _reduce2 = _interopRequireDefault(_reduce);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
locator: {
check: function check(_ref) {
var option = _ref.option;
return isNaN(option) && option.indexOf('attribute-') > -1;
},
locate: function locate(_ref2) {
var label = _ref2.label,
option = _ref2.option,
containerElements = _ref2.containerElements;
if (isNaN(option) && option.indexOf('attribute-') > -1) {
return (0, _reduce2.default)(containerElements, function (totalResult, containerElement) {
var key = option.slice('attribute-'.length);
_log2.default.debug('Searching ' + key + ' attribute:', label);
var result = (0, _xpath2.default)('.//*[contains(translate(@' + key + ', \'ABCDEFGHJIKLMNOPQRSTUVWXYZ\', \'abcdefghjiklmnopqrstuvwxyz\'), translate(\'' + label + '\', \'ABCDEFGHJIKLMNOPQRSTUVWXYZ\', \'abcdefghjiklmnopqrstuvwxyz\'))]', containerElement);
return totalResult.concat(result);
}, []);
}
return [];
}
}
};