As we have seen in previous post Selenium Grid Tutorial : Setting up hub and nodes, We have seen how to setup hub and nodes. But in this post we are going to see various parameters that is used in node setup to take optimum benefit of resources as per our need and availability.
So lets see all the parameters and their use one after another..
-port : In general understand it as an address for specific process and this helps to understand which process is being listened at which port.
By default node registered on port 5555 if port parameters is not defined in registering a node with hub.
So lets see how to provided any port number as per our need But before running this command reach to the folder/location where you have kept your selenium standalone jar in your computer and here node is being executed on the same machine just by opening another terminal so here we have taken http://localhost:4444
java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://localhost:4444/grid/register -port 5557In above example, -port is being followed by 5557 and by doing so we have assigned port 5557 to this node. This can be seen whether node has beed registered with hub with port 5557 or not just by opening console on following URL http://localhost:4444/grid/console (Note: by default hub takes 4444 as port) If node would have been registered then it will be visible on grid console like this


java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=firefoxBut above command would register only one instance of Firefox like this

java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=chromeand for IE browser place iexplore in place of chrome/firefox in above command maxInstances: it tells how many number of browser instance could be used from registered node. So in above command that we have seen for -browser parameter, if we want to increase the number of instance more than default 1 to 5 then we need to use one more parameter maxInstances followed by browser name. Like this
java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=firefox,maxInstances=3Above command would register three instance of Firefox browser from node to Hub and it would look like this

java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=firefox,maxInstances=3version and platform: we can also give these two parameter as well but in most of the cases grid make decision which platform and version of browser is present on node. So if you want to mention it explicitly at the registration of node then its good but if you don’t then this is not going to make any difference. so lets see one example of these two parameter as well
java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=firefox,maxInstances=3,version=40.0,platform=LINUXin above example we are registering a firefox browser of version 40.0 from Linux machine. Setting path of third party binaries in Selenium grid(mainly for Chrome,IE ) But before that lets see one exception on node which have already registered Chrome browser with Hub. exception seems like this
org.openqa.selenium.WebDriverException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.htmlSo here is the solution to execute your remote-webdriver test on one node with Chrome browser.
java -Dwebdriver.chrome.driver=/path/to/chromedriver -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://<IP of hub maachine>:4444/grid/register -port 5557 -browser browserName=chromeso above command will help you out to resolve your chrome related issue. So lets see some more commands with various combination of browser with various instances and sessions Command 1: For one IE, 1 Chrome and 1Firefox instances from some node so it would look like this
java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://localhost:4444/grid/register -port 5557 -browser browserName=chrome -browser browserName=firefox -browser browserName=iexploreCommand 2: For 2 instance of IE , 10 instances of Firefox and 7 instance of Chrome(please forgive me since i am going to run this on mac or linux machines since i don’t have my windows machine with me right now) But always remember we are not talking about default browser session so rememebr it will be five and not more than that we can run at a time on any node without any customisation.
java Dwebdriver.chrome.driver=/path/to/chromedriver -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://localhost:4444/grid/register -port 5557 -browser browserName=chrome,maxInstances=7 -browser browserName=firefox,maxInstances=10 -browser browserName=iexplore,maxInstances=2Note: give path of chromedriver without any single or double quote in above command like this For Chrome -Dwebdriver.chrome.driver= E:/chromedriver.exe For IE -Dwebdriver.ie.driver=E:/<ie driver exe> Command 3: Use command 2 with custom session that should be sum of (10+7+2)
java -jar selenium-server-standalone-2.48.2.jar -role webdriver -hub http://localhost:4444/grid/register -port 5557 -browser browserName=chrome,maxInstances=7 -browser browserName=firefox,maxInstances=10 -browser browserName=iexplore,maxInstances=2 -maxSession 17Note: add third-party executable in above if you are not using Unix core machines(because in that case, you have already kept this binary in lib folder so in that case you don’t need. To read more about setting the path in mac or other Unix kernel machine read following post Installing ChromeDriver on Mac.
Leave a Reply