code: function(cssSelector, textToMatch) {
  
          // method to execute within the DOM to find elements containing text
          function findElementsContainingText(query, content) {
  
              var results = []; // array to hold results
  
              // workout which property to use to get inner text
              var txtProp = ('textContent' in document) ? 'textContent' : 'innerText';
  
              // get the list of elements to inspect
              var elements = document.querySelectorAll(query);
  
              for (var i = 0, l = elements.length; i < l; i++) {
                  if (elements[i][txtProp].trim() === content.trim()) {
                      results.push(elements[i]);
                  }
              }
  
              return results;
          }
  
          // grab matching elements
          return driver.findElements(by.js(findElementsContainingText, cssSelector, textToMatch));
      }
docs: returns list of elements matching a query selector who's inner text matches param.
  WARNING: The element returned might not be visible in the DOM and will therefore have restricted interactions
  @param {string} cssSelector - css selector used to get list of elements
  @param {string} textToMatch - inner text to match (does not have to be visible)
  @returns {Promise} resolves with list of elements if query matches, otherwise rejects
  @example
  helpers.getElementsContainingText('nav[role="navigation"] ul li a', 'Safety Boots')