code: public static List<WebElement> locateElements(String locator, ParentTraits parent) {
          logger.entering(new Object[] { locator, parent });
          Preconditions.checkArgument(StringUtils.isNotBlank(locator), INVALID_LOCATOR_ERR_MSG);
          Preconditions.checkArgument(parent != null, INVALID_PARENT_ERR_MSG);
          List<WebElement> webElementsFound = parent.locateChildElements(locator);
  
          // if element is empty list then throw exception since unlike
          // findElement() findElements() always returns a list
          // irrespective of whether an element was found or not
          if (webElementsFound.isEmpty()) {
              throw new NoSuchElementException("Cannot locate any element using [" + locator + "]");
          }
          logger.exiting(webElementsFound);
          return webElementsFound;
      }
docs: Parses locator string to identify the proper By subclass before calling Selenium
  {@link WebElement#findElements(By)} to locate the web elements nested within the parent web .
  
  @param locator
  String that represents the means to locate this element (could be id/name/xpath/css locator).
  @param parent
  {@link ParentTraits} object that represents the parent element for this element.
  @return {@link WebElement} list that represents the html elements that was located using the locator provided.