exports.assertion = function(selector) { this.selector = selector; this.message = 'Testing if element <' + selector + '> has no descendents.'; this.expected = true; this.pass = function(value) { return value && (value.length === 0); }; this.value = function(result) { return result && result.value; }; this.command = function(callback) { var self = this; this.api.elements('css selector', this.selector, function(result) { if (result.status === 0 && result.value.length > 0) { this.elementIdElements(result.value[0].ELEMENT, 'css selector', '*', function(res) { callback(res); }); } else { self.message += ' No elements were returned for selector: ' + self.selector; callback(false); } }); return this; }; };