I had also same question, but after digging I found,
WebDriver
uses native browser approach. Selenium offers inbuilt
driver for Firefox but not for other browsers. All drivers (Chrome
Driver, IE driver, etc.) are built based on the special JS Engine used
by each browser.
Selenium WebDriver
works very well with Mozilla Firefox because it has a built in driver server. But the same is not true for Internet Explorer and Google Chrome. Firefox is the most traditional browser, thus Selenium WebDriver
do not require any additional utility to be set before launching the browser. The Selenium package automatically references towards the default location of the firefox.exe, thus the user need not to set any other property.
If you ever get the “the path to the driver executable must be set by the webdriver. ie. driver system property” error or its similarly worded Chrome equivalent, it means that you need to install the driver servers on your browser. The driver server manages the calls between the browsers and the Selenium wire protocol.
The InternetExplorerDriver
is a standalone server which implements WebDriver’s wire protocol
Similarly, Google Chrome doesn’t have a built-in server so you will need a Chrome driver server for communicating your Selenium code to the browser. You can download the Chrome driver server.
Founded from here.