{"id":15664,"date":"2020-07-02T19:58:41","date_gmt":"2020-07-02T19:58:41","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=15664"},"modified":"2025-08-28T23:47:16","modified_gmt":"2025-08-28T23:47:16","slug":"how-to-run-a-selenium-server-standalone-and-grid-hub-mode","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-run-a-selenium-server-standalone-and-grid-hub-mode\/","title":{"rendered":"How to run a selenium-server-standalone and grid\/hub mode?"},"content":{"rendered":"\n<p><strong>What is Selenium Server (Grid)?<\/strong><br>The Selenium Server is needed in order to run Remote Selenium WebDriver (Grid).<\/p>\n\n\n\n<p><strong>Download Location &#8211; Click Here<\/strong><br>https:\/\/www.selenium.dev\/downloads\/<\/p>\n\n\n\n<p><strong>As per GridRole class &#8211; Selenium server can run in one of the following roles:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>NOT_GRID<\/strong> [If -role option is omitted the server runs standalone not being a part of a grid]&gt;<\/li><li><strong>HUB <\/strong>[as a hub of a Selenium grid]<\/li><li><strong>NODE <\/strong>[as a node of a Selenium grid]<\/li><\/ul>\n\n\n\n<p><strong>NOT_GRID RC (Selenium interface)- IP:Port\/selenium-server:<\/strong><\/p>\n\n\n\n<p>Selenium Remote Control (RC) requires server to be started before executing the test scripts. RC server injects Selenium core (JavaScript) into the browser. The core (daemon process) receives commands from the server by your test scripts and executes them in a browser then results to your program. But cannot handle moving mouse cursors &amp; mobile execution.<\/p>\n\n\n\n<p><strong>Java Client Driver: <\/strong>Client-Configures your browser to use the Selenium Server as an HTTP proxy and passes browser commands to server through &#8220;\/selenium-server\/RemoteRunner.html?sessionId=1234&#8221;, clients may send Driver Command requests to selenium server over HTTP as follows:<\/p>\n\n\n\n<p><strong>Code &amp; Requests:<\/strong> RC Server continuously runs. we create a daemon and from that communicate with the browser.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># As of 3.8.1, specifying the driver is no longer necessary:<\/span>\n$ java -jar seleniumjar.jar\n$ java -jar seleniumjar.jar -Dwebdriver.chrome.driver=.\/chromedriver \n\n<span class=\"hljs-keyword\">If<\/span> you want to specifiy the port <span class=\"hljs-keyword\">do<\/span>\n$ java -jar seleniumjar.version.jar -Dwebdriver.chrome.driver=.\/chromedriver -port <span class=\"hljs-number\">4545<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>HUB &#8211; Grid HUB Running as a standalone server:<\/strong><\/p>\n\n\n\n<p>Hub is a central point which distributing tests on several node-machines, which are registered to it for parallel execution.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">$ java -jar selenium-server-standalone<span class=\"hljs-number\">-2.53<\/span><span class=\"hljs-number\">.0<\/span>.jar -host <span class=\"hljs-number\">127.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span> -port <span class=\"hljs-number\">4454<\/span> -role hub -log <span class=\"hljs-string\">\"D:\\\\HUB_Log.txt\"<\/span>\n\n<span class=\"hljs-attr\">Grid<\/span>: &#91; - IP:Port\/grid\/<span class=\"hljs-built_in\">console<\/span>]\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>NODE &#8211; [RC] has to post a request to HUB in order to register with it, by this URL &#8211; IP:Port\/\/grid\/register<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\n\n$ java -jar selenium-server-standalone<span class=\"hljs-number\">-2.53<\/span><span class=\"hljs-number\">.0<\/span>.jar -host <span class=\"hljs-number\">127.0<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span> -port <span class=\"hljs-number\">4458<\/span> -role node \n-hub http:<span class=\"hljs-comment\">\/\/127.0.0.1:4454\/grid\/register -hubHost 127.0.0.1 -hubPort 4454 <\/span>\n-browser browserName=firefox,version=<span class=\"hljs-number\">24.0<\/span>, maxinstance=<span class=\"hljs-number\">1<\/span>,platform=WINDOWS7 \n-browser  browserName=chrome,version=<span class=\"hljs-number\">53.0<\/span>,platform=WINDOWS \n-Dwebdriver.chrome.driver=D:\\\\Drivers\\\\chromedrivers\\\\<span class=\"hljs-number\">2.24<\/span>\\\\chromedriver.exe\n\n$ D:\\SeleniumJar_Source&gt;java -jar selenium-server-standalone<span class=\"hljs-number\">-2.53<\/span><span class=\"hljs-number\">.0<\/span>.jar -role node \n-hub http:<span class=\"hljs-comment\">\/\/127.0.0.1:4454\/grid\/register <\/span>\n-nodeConfig registerNode.json \n-Dwebdriver.chrome.driver=<span class=\"hljs-string\">\"D:\\\\Drivers\\\\chromedrivers\\\\2.24\\\\chromedriver.exe\"<\/span> \n-Dwebdriver.ie.driver=<span class=\"hljs-string\">\"D:\\\\Drivers\\\\IEDrivers\\\\iedriver64\\\\IEDriverServer.exe\"<\/span> \n-Dwebdriver.firefox.logfile=<span class=\"hljs-string\">\"D:\\\\FirefoxInstance.txt\"<\/span> \n-Dwebdriver.chrome.logfile=<span class=\"hljs-string\">\"D:\\\\ChromeInstance.txt\"<\/span> \n-Dwebdriver.ie.logfile=<span class=\"hljs-string\">\"D:\\\\IEInstance.txt\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_13609\"><iframe loading=\"lazy\"  id=\"_ytid_48931\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_13609\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>What is Selenium Server (Grid)?The Selenium Server is needed in order to run Remote Selenium WebDriver (Grid). Download Location &#8211; Click Herehttps:\/\/www.selenium.dev\/downloads\/ As per GridRole class &#8211; Selenium server can&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[10398],"tags":[],"class_list":["post-15664","post","type-post","status-publish","format-standard","hentry","category-selenium"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/15664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=15664"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/15664\/revisions"}],"predecessor-version":[{"id":24694,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/15664\/revisions\/24694"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=15664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=15664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=15664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}