Why do we need IEDriver and ChromeDriver but no Firefox Driver?

159 views
Skip to first unread message

Sudhansu Sekhar panda

unread,
Feb 19, 2014, 7:20:28 AM2/19/14
to seleniu...@googlegroups.com

I have small doubt.

Why do we need IEdriver and Chrome Driver running selenium scrits in IE and Chrome but we do not need a firefox driver to run the script?

Is there any reason for the same?

Thanks,

Sudhansu

Sundeep Gupta

unread,
Feb 19, 2014, 7:46:10 AM2/19/14
to seleniu...@googlegroups.com
Because it comes bundled within your selenium jar. If you unjar it you will find webdriver.xpi file, which is your firefox driver.

Ravindra

unread,
Feb 19, 2014, 4:29:36 PM2/19/14
to seleniu...@googlegroups.com
Yeah, and additionally Firefox was the only driver which inbuilt with Selenium API, IE and Chrome are third party driver so we need to have driver exe to run our automation flow on those browsers.

~Ravindra

Krishnan Mahadevan

unread,
Feb 20, 2014, 9:15:19 AM2/20/14
to Selenium Users
@Ravindra,
That's not true.

Here's how the server side components for all of the browsers are designed.

For Firefox, the server side component is built as a firefox plugin, [ Firefox supports plugins and works with profiles. So WebDriver extracts the embedded webdriver xpi, creates an anonymous profile, adds this plugin to it and then spawns the browser]. That way all of your webdriver commands that you trigger via the client bindings can interact with the embedded server.

For IE, the earlier releases used to work with an internal IEDriver.dll which was embedded into the selenium jars. But after 2.25 I believe Jim Evans separated them out of the codebase and started releasing the server component (Earlier the IEDriver.dll) as IEDriverServer.exe. This was done to basically decouple the server component from the language bindings so that it becomes easier to fix problems at the server side (that was mostly where most of the heavy lifting of work is done in terms of browser interactions) and release it independent of a selenium release.

For Chrome, the same role is played by chromedriver.exe which plays the server component role.

IEDriverServer is very much part of the core webdriver produced artifacts. ChromeDriver on the other hand is being provided by the chromium project.

The reason a server component is involved here is because WebDriver APIs adhere to the JSONWireProtocol which basically leverages GET/PUT/POST/DELETE operations on an end point to get the interaction with the browser done. The server component basically responds to the JSONWireProtocol compliant commands (The client bindings internally convert all your API actions into a JSONWireProtocol compliant command and post it against the end point) and performs the UI operations.



Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
My Scribblings @ http://wakened-cognition.blogspot.com/
My Technical Scribbings @ http://rationaleemotions.wordpress.com/


--
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-user...@googlegroups.com.
To post to this group, send email to seleniu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/ef7b9d83-43ec-4c41-a8a2-3bac45226538%40googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.

Reply all
Reply to author
Forward
0 new messages