Have you ever given a thought why do you declare a list of WebElement like this :
List<WebElement> ele = driver.findElements(By.xpath("some Xpath "));
instead of ArrayList<WebElement> or LinkedList<WebElement>
Because we want to have some specific ready mate methods which would be applicable for our list.
Either way we can invoke chrome browser , I do not know why you have mentioned
the later won't work? -- It should work.
You may some times want to go with ChromeDriver class when you have some special requirement like : Invocation of constructor and some of the methods like :
driver.executeAsyncScript(script, args);
driver.executeScript(script, args);
driver.findElementByClassName(using);
driver.findElementByCssSelector(using);
driver.findElementById(using);
driver.perform(actions);
driver.setLocation(location);
driver.getCapabilities();
driver.getErrorHandler();
driver.getFileDetector();
driver.getMouse();
driver.getKeyboard();
and so many..