Difference between WebDriver and RemoteWebdriver

21,251 views
Skip to first unread message

swaroop kulkarni

unread,
Sep 20, 2011, 4:22:54 PM9/20/11
to webdriver
I am new to WebDriver and got confused when to use WebDriver and
RemoteWebdriver ?
Can anybody please put some light ?

Thanks,
Swaroop

Luke Inman-Semerau

unread,
Sep 20, 2011, 4:40:02 PM9/20/11
to webd...@googlegroups.com
My statements depend on the language bindings, but assuming java:

You don't actually use WebDriver, it's just an interface. Implementations of it include: InternetExplorerDriver, FirefoxDriver, ChromeDriver, HtmlUnitDriver, OperaDriver and RemoteWebDriver.

If you want to use the browser on the machine that is running the automation, then you can use everything but RemoteWebDriver.

RemoteWebDriver requires the selenium-server-standalone to be running (the others do not). This could be running on the same machine or a "remote" one.

If you want to use Grid (which is run via selenium-server-standalone) then you *must* use RemoteWebDriver.


Anyone feel free to clarify if you feel I misspoke.

-Luke

> --
> You received this message because you are subscribed to the Google Groups "webdriver" group.
> To post to this group, send email to webd...@googlegroups.com.
> To unsubscribe from this group, send email to webdriver+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/webdriver?hl=en.
>

Krishnan Mahadevan

unread,
Sep 20, 2011, 10:53:06 PM9/20/11
to webd...@googlegroups.com
Luke,

AFAIK RemoteWebDriver can be used when Development environment and Execution environment are
a) The same machine
b) Different machines.

The only requirement is that for a RemoteWebDriver to work, you would always have to have it pointing to the URL of a Grid.

So if a person needs to work with Grid he/she would have to stick with RemoteWebDriver, and if there is no need for a grid then he/she can use anything other than the RemoteWebDriver.


Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"

darrell

unread,
Sep 21, 2011, 11:30:14 AM9/21/11
to webdriver
Just to add to what Luke has said...

If you are using any of the drivers not RemoteWebDriver, they assume
the communication to the web browser is local. So if I have:

Webdriver driver = new FirefoxDriver();

using driver will access Firefox on the local machine, directly. If I
use RemoteWebDriver, it requires you to tell it where the Selenium
Server (Grid) is located and which web browser you want to use. For
example,

WebDriver driver = new RemoteWebDriver(new URL("http://localhost:
4444/wd/hub"), DesiredCapabilities.firefox());

This example assumes that Selenium Server is running on localhost with
the default port of 4444. The nice thing about this is you can run
Selenium Server on any machine, change the URL to point to the new
machine and run the tests. For example, I run the test code from my
Mac OS X computer but I run Selenium Server on a Window XP machine.
This way I can launch Internet Explorer tests from my Mac OS X
computer.

Darrell

On Sep 20, 4:40 pm, Luke Inman-Semerau <luke.seme...@gmail.com> wrote:
> My statements depend on the language bindings, but assuming java:
>
> You don't actually use WebDriver, it's just an interface. Implementations of it include: InternetExplorerDriver, FirefoxDriver, ChromeDriver, HtmlUnitDriver, OperaDriver and RemoteWebDriver.
>
> If you want to use the browser on the machine that is running the automation, then you can use everything but RemoteWebDriver.
>
> RemoteWebDriver requires the selenium-server-standalone to be running (the others do not). This could be running on the same machine or a "remote" one.
>
> If you want to use Grid (which is run via selenium-server-standalone) then you *must* use RemoteWebDriver.
>
> Anyone feel free to clarify if you feel I misspoke.
>
> -Luke
>

Swaroop Kulkarni

unread,
Sep 21, 2011, 1:59:30 PM9/21/11
to webd...@googlegroups.com
Thanks a lot Gentlemen !!! This will definitely help

Thanks,
Swaroop

Simon Stewart

unread,
Sep 22, 2011, 9:57:19 AM9/22/11
to webd...@googlegroups.com
WebDriver is the interface that you should be using throughout your tests.

RemoteWebDriver is a concrete implementation of that interface.

As a general principle, it always a wise idea to code against
interfaces whereever possible.

Simon

AnetJacob

unread,
Sep 5, 2013, 3:13:33 AM9/5/13
to webd...@googlegroups.com


Hi,
When i run eclipse ,i get the following error: org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(C:\Program Files\Mozilla Firefox\firefox.exe) on port 7055.

Cud anyone plz help me with this

Thanks

Anet

Ankit sharma

unread,
Sep 9, 2013, 10:31:58 PM9/9/13
to webd...@googlegroups.com
Hi.

This could be a firefox version compatibility with web driver version, issue.So upgrade/downgrade your firefox as per  your selenium version.

darrell

unread,
Sep 10, 2013, 12:18:02 AM9/10/13
to webd...@googlegroups.com
Or they could stop posting questions at the bottom of completely unrelated threads and search the group for an answer which has been posted over 4 dozen times.

Vishal Singh

unread,
Aug 20, 2014, 8:11:38 AM8/20/14
to webd...@googlegroups.com
I am also new in selenium .kindly tell me about WebElement in details .I know it is interface but how we are using it .

Ram Prasad

unread,
Aug 20, 2014, 9:16:52 AM8/20/14
to webd...@googlegroups.com
WebDriver is an implementation for ex FirefoXDriver , remotewebdriver is an interface


--
You received this message because you are subscribed to the Google Groups "webdriver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webdriver+...@googlegroups.com.

To post to this group, send email to webd...@googlegroups.com.

Krishnan Mahadevan

unread,
Aug 21, 2014, 3:59:08 AM8/21/14
to webdriver
@RamPrasad,
Am afraid I will have to disagree. Your explanation is totally incorrect.


@Vishal,
Here's the entire deal.

WebDriver is an interface which basically establishes the contract. In plain english an interface basically represents the verb and a class represents a noun. So in this case WebDriver basically establishes the basic set of things that anything which would like to call itself as an implementation of webdriver interface should possess.

RemoteWebDriver is the mother of all "concrete" implementations of browser interaction within Selenium i.e., its the base class of all the concrete implementations i.e., IEDriver, FFDriver, ChromeDriver etc.,

All these webdriver implementations extend the RemoteWebDriver wherein they specifically override only the part of RemoteWebDriver that deals with how to start and stop the client part that is responsible for interacting with the server component [ IEDriverServer binary or the ChromeDriver binary or the server embedded in the firefox plugin ]


Thanks & Regards
Krishnan Mahadevan

"All the desirable things in life are either illegal, expensive, fattening or in love with someone else!"
Message has been deleted

Krishnan Mahadevan

unread,
Mar 26, 2015, 4:05:41 AM3/26/15
to webdriver
RemoteWebDriver will ONLY execute those actions that are part of the JSONWireProtocol.

So all the NON Selenium actions are going to be executed in the machine from where the execution got kicked off and NOT on the remote machine to which the RemoteWebDriver forwards your test to.

If you need something like that, then you would need to basically integrate those capabilities and build something like what iOS-Driver or Selendroid or Appium for that matter use as an approach viz.,

1. Build a client library that basically adheres to the contract as defined by WebDriver interface.
2. Build a server component that basically implements each of the JSONWireProtocol commands and maps them into an action that can be performed on a remote machine.
3. Enhance your server component such that it can function as a Grid Node and attach itself to a running Grid so that you can use RemoteWebDriver and do the delegation of running these custom actions on a remote node.

Hope that helps !








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/

On Thu, Mar 26, 2015 at 1:31 PM, Sanam Chugh <sanam...@qualitiasoft.com> wrote:
Hi All,

                 I went through your discussion to understand more about webdriver and I had few questions. Do let me know if I should start another thread.

do all the non selenium actions for instance java actions in the test , auto it actions,sikuli actions, do they get invoked on the remote machine itself where the browser is invoked?
or do they get executed on the client machine from where the execution is kicked off???

I was just wondering, if in your test scripts we have used some third party libraries, or reading some files, then how are they picked up by the  remote machine where the test has been invoked. Do these need to be present on the remote system??

Your valuable input will be appreciated.

Thanks,
Sanam

--

chris rhoads

unread,
Apr 12, 2017, 2:20:40 AM4/12/17
to webdriver
Darrell,

I am actually attempting to set this up as I have a MacBookPro I develop scripts on but also have an XP machine just sitting idle and I wanted to utilize it.
A couple preliminary/NOOB questions on the RemoteWebDriver and or GRID setup.

- Did you set the Mac Machine as the HUB and the XP machine as the NODE?
- Are these on the same local network? If so do you then just supply the target private IP of 192.168.x.x to the HUB so it can get to it?
- Are there specific ports which need to be set for the listener on the NODE machine?
- If the Hub and Node are on separate networks do you then point the HUB to the Node's Default Gateway and the NODE to the HUBS default gateway with a port assigned?

Currently researching RemoteWebDriver and GRID to figure out how to do this when I came across this thread ANY and ALL assistance is appreciated!

Thanks in advance!

Chris
Reply all
Reply to author
Forward
0 new messages