mirror of
https://github.com/appium/appium.git
synced 2026-02-09 19:28:48 -06:00
51 lines
1.1 KiB
JavaScript
51 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
var Q = require('q'),
|
|
_ = require('underscore');
|
|
|
|
exports.each = function (fn) {
|
|
return function (els) {
|
|
var seq = _(els).map(function (el, i) {
|
|
return function () {
|
|
return fn(el, i);
|
|
};
|
|
});
|
|
// iterating
|
|
return seq.reduce(Q.when, new Q()).then(function () {
|
|
return els;
|
|
});
|
|
};
|
|
};
|
|
|
|
exports.filter = function (fn) {
|
|
return function (els) {
|
|
var seq = _(els).map(function (el, i) {
|
|
return function (filteredEls) {
|
|
return fn(el, i).then(function (isOk) {
|
|
if (isOk) filteredEls.push(el);
|
|
return filteredEls;
|
|
});
|
|
};
|
|
});
|
|
// iterating
|
|
return seq.reduce(Q.when, new Q([]));
|
|
};
|
|
};
|
|
|
|
exports.printNames = exports.each(function (el, i) {
|
|
return el.getAttribute('name').print(i + "--> ");
|
|
});
|
|
|
|
exports.filterDisplayed = exports.filter(function (el) {
|
|
return el.isDisplayed();
|
|
});
|
|
|
|
exports.filterWithName = function (name) {
|
|
return exports.filter(function (el) {
|
|
return el.getAttribute('name').then(function (_name) {
|
|
return _name === name;
|
|
});
|
|
});
|
|
};
|
|
|