IE11 test runs if specified direct node ip but fails when grid hub url specified
Asked Answered
T

1

9

I use nodejs selenium-standalone and I have:

1) selenium-standalone running on Mac with role=hub

2) selenium-standalone running on Mac with role=node (to run tests on local Mac browsers)

3) Windows 10 installed on parallels desktop with selenium-standalone running with role=node

4) IE11 is configured regarding this article https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration

I have gridUrl config in my test (yandex gemini) and when I set it to windows node url (http://10.211.55.4:5555/wd/hub) IE11 test works fine. But when I set gridUrl to correct value (means local grid hub 127.0.0.1:4444/wd/hub) then IE11 opens stuck at "This is the initial start page for the WebDriver server." and "Only local connections are allowed" in the console. All other windows browsers in this case work fine (chrome, firefox, edge). No any errors in mac selenium grid hub console or in windows selenium node console - seems like grid hub somehow incorrectly trying to call windows node IEDriver.

Command to start selenium:

1) MacOS hub:

java -jar 3.8.1-server.jar -role hub

2) Windows10 node:

java -jar 3.8.1-server.jar -role node -hub http://192.168.1.4:4444/grid/register

After this, I can see all nodes and browsers on MacOS http://127.0.0.1:4444/grid/console.

I use selenium 3.8.1, IEdriver x64 3.8.0

MacOS hub terminal screenshot:

MacOS hub terminal screenshot

Windows node cmd screenshot:

Windows node cmd screenshot

MacOS grid hub console screenshot with config:

MacOS grid hub console screenshot with config

MacOS grid hub console screenshot:

MacOS grid hub console screenshot

DEBUG mode output of hub and node:

Windows node console output on success (direct connection without using grid hub):

2018-01-21 22:07:43.348:INFO:osjshC.ROOT:qtp31280858-9: org.openqa.selenium.remote.server.WebDriverServlet-11d44a3: Initialising WebDriverServlet

22:07:43.379 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1f51925

22:07:43.379 INFO - /session: Executing POST on /session (handler: BeginSession)

22:07:43.458 INFO - Capabilities are: Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: }

22:07:43.458 INFO - Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService)

Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 3512

Only local connections are allowed

22:07:43.770 DEBUG - CookieSpec selected: default

22:07:43.770 DEBUG - Auth cache not set in the context

22:07:45.551 INFO - Detected dialect: W3C

22:07:45.598 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.598 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/window/current/size (handler: ServicedSession)

22:07:45.770 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.770 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:45.833 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.833 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/moveto (handler: ServicedSession)

22:07:45.865 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:45.865 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/url (handler: ServicedSession)

22:07:46.428 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.428 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.489 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.489 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.552 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.552 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:46.615 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:46.615 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.208 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.208 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.301 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.301 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.349 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.349 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.520 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.520 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.599 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.599 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:47.771 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.786 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing POST on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/execute (handler: ServicedSession)

22:07:47.833 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:47.833 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing GET on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f/screenshot (handler: ServicedSession)

22:07:48.567 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@c91496

22:07:48.567 INFO - Handler thread for session 7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (internet explorer): Executing DELETE on /session/7bfb0881-fcfb-48fc-8f6a-cdbdf7164a6f (handler: ServicedSession)

22:07:48.598 INFO - Removing session org.openqa.selenium.remote.server.ServicedSession@c91496

Windows node console output on fail (connection via mac grid hub):

2018-01-21 22:14:36.612:INFO:osjshC.ROOT:qtp29933260-14: org.openqa.selenium.remote.server.WebDriverServlet-1474f18: Initialising WebDriverServlet

22:14:36.628 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1f793e6

22:14:36.628 INFO - /session: Executing POST on /session (handler: BeginSession)

22:14:36.721 INFO - Capabilities are: Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: }

22:14:36.721 INFO - Capabilities {browserName: internet explorer, javascriptEnabled: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService)

22:14:36.752 DEBUG - Waiting for [http://localhost:15388/status]

22:14:36.752 DEBUG - Polling http://localhost:15388/status

Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 15388
Only local connections are allowed

22:14:37.269 DEBUG - Polling http://localhost:15388/status

22:14:37.269 DEBUG - sun.net.www.MessageHeader@14906bf5 pairs: {GET /status HTTP/1.1: null}{User-Agent: Java/1.8.0_161}{Host: localhost:15388}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}

22:14:37.269 DEBUG - sun.net.www.MessageHeader@4b81f27 pairs: {null: HTTP/1.1 200 OK}{Content-Length: 185}{Content-Type: application/json; charset=UTF-8}{Cache-Control: no-cache}{Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept}{Accept-Ranges: bytes}{Connection: close}

22:14:37.283 DEBUG - CookieSpec selected: default

22:14:37.283 DEBUG - Auth cache not set in the context
22:14:37.283 DEBUG - Connection request: [route: {}->http://localhost:15388][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]

22:14:37.283 DEBUG - Connection leased: [id: 2][route: {}->http://localhost:15388][total kept alive: 0; route allocated: 1 of 2000; total allocated: 1 of 2000]
22:14:37.283 DEBUG - Opening connection {}->http://localhost:15388
22:14:37.283 DEBUG - Connecting to localhost/127.0.0.1:15388

22:14:37.283 DEBUG - Connection established 127.0.0.1:52058<->127.0.0.1:15388
22:14:37.283 DEBUG - http-outgoing-2: set socket timeout to 10800000
22:14:37.283 DEBUG - Executing request POST /session HTTP/1.1
22:14:37.283 DEBUG - Target auth state: UNCHALLENGED
22:14:37.283 DEBUG - Proxy auth state: UNCHALLENGED

22:14:37.283 DEBUG - http-outgoing-2 >> POST /session HTTP/1.1
22:14:37.283 DEBUG - http-outgoing-2 >> Content-Type: application/json; charset=utf-8
22:14:37.283 DEBUG - http-outgoing-2 >> Content-Length: 364
22:14:37.283 DEBUG - http-outgoing-2 >> Host: localhost:15388
22:14:37.283 DEBUG - http-outgoing-2 >> Connection: Keep-Alive

22:14:37.283 DEBUG - http-outgoing-2 >> User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_161)
22:14:37.283 DEBUG - http-outgoing-2 >> Accept-Encoding: gzip,deflate
22:14:37.283 DEBUG - http-outgoing-2 >> "POST /session HTTP/1.1[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Content-Type: application/json; charset=utf-8[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Content-Length: 364[\r][\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "Host: localhost:15388[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Connection: Keep-Alive[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_161)[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "Accept-Encoding: gzip,deflate[\r][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "[\r][\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "{[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "  "desiredCapabilities": {"browserName":"internet explorer","javascriptEnabled":true,"platform":"WINDOWS","version":""},[\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "  "capabilities": {[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "    "desiredCapabilities": {"browserName":"internet explorer","javascriptEnabled":true,"platform":"WINDOWS","version":""},[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "    "firstMatch": [[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "      {"browserName":"internet explorer","platformName":"windows"}[\n]"

22:14:37.283 DEBUG - http-outgoing-2 >> "    ][\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "  }[\n]"
22:14:37.283 DEBUG - http-outgoing-2 >> "}"

22:14:38.833 DEBUG - http-outgoing-2 << "HTTP/1.1 200 OK[\r][\n]"

22:14:38.833 DEBUG - http-outgoing-2 << "Content-Length: 692[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Content-Type: application/json; charset=UTF-8[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Cache-Control: no-cache[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Accept-Ranges: bytes[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "Connection: close[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "{"value":{"capabilities":{"acceptInsecureCerts":false,"browserName":"internet explorer","browserVersion":"11","pageLoadStrategy":"normal","platformName":"windows","proxy":{},"se:ieOptions":{"browserAttachTimeout":0,"elementScrollBehavior":0,"enablePersistentHover":true,"ie.browserCommandLineSwitches":"","ie.ensureCleanSession":false,"ie.fileUploadDialogTimeout":3000,"ie.forceCreateProcessApi":false,"ignoreProtectedModeSettings":false,"ignoreZoomSetting":false,"initialBrowserUrl":"http://localhost:15388/","nativeEvents":true,"requireWindowFocus":false},"setWindowRect":true,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000}},"sessionId":"3aba8a66-2b37-4516-b16c-b34acaea1555"}}[\n]"
22:14:38.833 DEBUG - http-outgoing-2 << "[\r][\n]"
22:14:38.833 DEBUG - http-outgoing-2 << HTTP/1.1 200 OK
22:14:38.833 DEBUG - http-outgoing-2 << Content-Length: 692
22:14:38.833 DEBUG - http-outgoing-2 << Content-Type: application/json; charset=UTF-8
22:14:38.833 DEBUG - http-outgoing-2 << Cache-Control: no-cache
22:14:38.833 DEBUG - http-outgoing-2 << Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
22:14:38.833 DEBUG - http-outgoing-2 << Accept-Ranges: bytes
22:14:38.833 DEBUG - http-outgoing-2 << Connection: close
22:14:38.833 DEBUG - http-outgoing-2: Close connection
22:14:38.833 DEBUG - Connection discarded
22:14:38.833 DEBUG - Connection released: [id: 2][route: {}->http://localhost:15388][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]

22:14:38.848 INFO - Detected dialect: W3C

22:14:38.864 DEBUG - Executing: newSession [null, newSession {desiredCapabilities=Capabilities {acceptInsecureCerts: false, browserName: internet explorer, browserVersion: 11, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, ignoreProtectedModeSettings: false, ignoreZoomSetting: false, initialBrowserUrl: http://localhost:15388/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}}]

22:14:38.864 DEBUG - Executed: [null, newSession {desiredCapabilities=Capabilities {acceptInsecureCerts: false, browserName: internet explorer, browserVersion: 11, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, ignoreProtectedModeSettings: false, ignoreZoomSetting: false, initialBrowserUrl: http://localhost:15388/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}}]

22:14:40.676 DEBUG - CookieSpec selected: default

22:14:40.676 DEBUG - Auth cache not set in the context
Thunderclap answered 21/1, 2018 at 10:56 Comment(17)
Can you update the question with the commands you have used to start the HUB and NODE along with your code trials?Auramine
@DebanjanB sure, done. Test code is actually useless in this case because it is gemini library which uses commands like .setUrl and .capture to capture screenshot from page (inside it opens the url and calls takeScreenshot).Thunderclap
please give the error messageGallard
@Gallard ok I edited the post. But as I mentioned - the are no actual errors. I guess that problem is network-related or something like that.Thunderclap
little confuse, from my experience, you should use the actual IP address of the Mac for grid hub url, rather than 127.0.0.1, If your script not on the Mac, script should not access 127.0.0.1. But from the Mac grid hub terminal output, seems grid hub recevie the request from script machine success. Did you also put script on the Mac grid machine?Gallard
@Gallard yes, I run test script from same Mac machine - so it is 127.0.0.1:4444/wd/hub. I am confused too because can't even see some error or anything like that :). I want to mention again - when I use IP of windows selenium node directly without passing request to Mac selenium grid hub - everything works fine without any problem.Thunderclap
And I very curious how did you make hub/nodes access each other through network, because your Mac hub IP address 192.168.1..4 looks like a internal address, Windows node IP address 10.211.55.4 looks like a public address, And you set grid hub address to 127.0.0.1Gallard
@Gallard ah this depends just on network type of parallers desktop - that was "Shared Network". I just changed it to "Bridged" and now windows machine host is 192.168.1.5 - but anyways problem is still here. Btw when I run Mac local selenium node - grid browser GUI shows its address as 10.37.129.2:5555 (again - grid hub and grid node are running at the same machine). I guess it is something like network alias.Thunderclap
Please give the entire register command you run on Windows, you can mask ip adderess like <hub address>Gallard
java -jar selenium-server-standalone-3.8.1.jar -role node -hub 192.168.1.4:4444/grid/registerThunderclap
stop the register cmd and try java -jar selenium-server-standalone-3.8.1.jar -role node -hub 192.168.1.4:4444/grid/register -browser "browserName=internet explorer" -Dwebdriver.ie.driver=<replace to the absolute path of your iedriver.exe on Windows machine>Gallard
Tried - same resultThunderclap
@Gallard ok I have enabled debug mode on node so now we have detailed log on what is happeningThunderclap
@Thunderclap - Can you please include a screenshot of the Hub console, and also explicitly call out the commands you are using to start the hub and nodes ? Please prefix the OS type before the node commands so that its clear on what OS you are running the node from. This is a very straight forward use case. So obviously there's something missing which is pretty basic.Amaryl
@KrishnanMahadevan ok I edited the post. I have provided exact commands which I run and full screenshots from hub and node (without debug flag because there is too much text which can't fit to the viewport).Thunderclap
@Thunderclap - Please include a screenshot of the html page that gets shown when you open up http://127.0.0.1:4444/grid/consoleAmaryl
@KrishnanMahadevan doneThunderclap
A
3

I can clearly see there is some mismatch in your Selenium Grid Hub configuration and the Selenium Grid Node registering to the Selenium Grid Hub as follows :

  • Selenium Grid Hub log says :

    Nodes should register to http://10.37.129.2:4444/grid/register/
    
  • Selenium Grid Node log says :

    Registering the node to the hub: http://192.168.1.4:4444/grid/register
    

Additionally, when you are starting the node to work with IEDriverServer and Internet Explorer but you have used the default command as :

java -jar 3.8.1-server.jar -role node -hub http://192.168.1.4:4444/grid/register

which is the exact reason you don't see INFO - Detected dialect: W3C in the FAILED usecase as follows :

Started InternetExplorerDriver server (64-bit)
3.8.0.0
Listening on port 15388
Only local connections are allowed

22:14:37.269 DEBUG - Polling http://localhost:15388/status

22:14:37.269 DEBUG - sun.net.www.MessageHeader@14906bf5 pairs: {GET /status HTTP/1.1: null}{User-Agent: Java/1.8.0_161}{Host: localhost:15388}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}

22:14:37.269 DEBUG - sun.net.www.MessageHeader@4b81f27 pairs: {null: HTTP/1.1 200 OK}{Content-Length: 185}{Content-Type: application/json; charset=UTF-8}{Cache-Control: no-cache}{Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept}{Accept-Ranges: bytes}{Connection: close}

22:14:37.283 DEBUG - CookieSpec selected: default

22:14:37.283 DEBUG - Auth cache not set in the context

Where as you need to mention the WebDriver variant which you intend to use as follows :

java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://192.168.1.50:4444/grid/register

So your log messages will contain :

Started InternetExplorerDriver server (64-bit)
3.7.0.0
Listening on port 18597
Only local connections are allowed
20:31:59.237 INFO - Detected dialect: W3C
20:31:59.592 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3
20:31:59.593 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing POST on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/url (handler: ServicedSession)
20:31:59.663 INFO - To upstream: {"url":"http://google.com/"}

You can see the detailed discussion here where Doug Simmons clearly mentions :

The server (grid node) needs to be started with the system property -- not the client i.e. you need to point the node to the geckodriver installation on the node


Solution

Follow the mentioned steps to configure the Selenium Grid Hub and Selenium Grid Node :

  • Start the Selenium Grid Hub :

    java -jar selenium-server-standalone-3.8.1.jar -role hub
    
  • The following logs should be produced :

    19:40:59.322 INFO - Selenium build info: version: '3.8.1', revision: '6e95a6684b'
    19:40:59.324 INFO - Launching Selenium Grid hub
    2018-01-23 19:41:01.710:INFO::main: Logging initialized @2960ms to org.seleniumhq.jetty9.util.log.StdErrLog
    19:41:01.764 INFO - Will listen on 4444
    2018-01-23 19:41:01.881:INFO:osjs.Server:main: jetty-9.4.7.v20170914
    2018-01-23 19:41:01.923:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0
    2018-01-23 19:41:01.924:INFO:osjs.session:main: No SessionScavenger set, using defaults
    2018-01-23 19:41:01.928:INFO:osjs.session:main: Scavenging every 600000ms
    2018-01-23 19:41:01.937:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@1b68b9a4{/,null,AVAILABLE}
    2018-01-23 19:41:01.959:INFO:osjs.AbstractConnector:main: Started ServerConnecto
    r@157632c9{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
    2018-01-23 19:41:01.960:INFO:osjs.Server:main: Started @3211ms
    19:41:01.960 INFO - Nodes should register to http://192.168.1.50:4444/grid/register/
    19:41:01.961 INFO - Selenium Grid hub is up and running
    
  • Observe the Selenium Grid Hub URI is : http://192.168.1.50:4444

  • Open the Selenium Grid Hub Console through the URL :

    http://192.168.1.50:4444/grid/console
    
  • Snapshot of the Selenium Grid Hub Config 1 :

Selenium_Grid_Hub_Config_1

  • Snapshot of the Selenium Grid Hub Config 2 :

Selenium Grid Hub Config 2

  • Start the Selenium Grid Node for IE11 :

    java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://192.168.1.50:4444/grid/register
    
  • Ensure that Selenium Grid Node is registered at http://192.168.1.50:4444/grid/register

  • The following logs should be produced on the Selenium Grid Node CLI :

    19:46:22.516 INFO - Selenium build info: version: '3.8.1', revision: '6e95a6684b'
    19:46:22.517 INFO - Launching a Selenium Grid node
    2018-01-23 19:46:25.124:INFO::main: Logging initialized @4715ms to org.seleniumhq.jetty9.util.log.StdErrLog
    19:46:25.178 INFO - Using `new FirefoxOptions()` is preferred to `DesiredCapabilities.firefox()`
    19:46:25.221 INFO - Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
    19:46:25.226 INFO - Using `new EdgeOptions()` is preferred to `DesiredCapabilities.edge()`
    19:46:25.227 INFO - Driver class not found: com.opera.core.systems.OperaDriver
    19:46:25.228 INFO - Using `new OperaOptions()` is preferred to `DesiredCapabilities.operaBlink()`
    19:46:25.230 INFO - Using `new SafariOptions()` is preferred to `DesiredCapabilities.safari()`
    19:46:25.232 INFO - Driver class not found: org.openqa.selenium.phantomjs.PhantomJSDriver
    19:46:25.306 INFO - Driver provider class org.openqa.selenium.safari.SafariDriver registration is skipped:
     registration capabilities Capabilities {browserName: safari, platform: MAC, version: } does not match the current platform WIN8
    19:46:25.371 INFO - Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
    19:46:25.373 INFO - Using `new EdgeOptions()` is preferred to `DesiredCapabilities.edge()`
    19:46:25.374 INFO - Using `new FirefoxOptions()` is preferred to `DesiredCapabilities.firefox()`
    19:46:25.375 INFO - Using `new OperaOptions()` is preferred to `DesiredCapabilities.operaBlink()`
    19:46:25.376 INFO - Using `new SafariOptions()` is preferred to `DesiredCapabilities.safari()`
    19:46:25.391 INFO - Using the passthrough mode handler
    2018-01-23 19:46:25.429:INFO:osjs.Server:main: jetty-9.4.7.v20170914
    2018-01-23 19:46:25.472:WARN:osjs.SecurityHandler:main: [email protected]
    ervletContextHandler@38afe297{/,null,STARTING} has uncovered http methods for path: /
    2018-01-23 19:46:25.481:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@38afe297{/,null,AVAILABLE}
    2018-01-23 19:46:25.503:INFO:osjs.AbstractConnector:main: Started ServerConnector@12bb9576{HTTP/1.1,[http/1.1]}{0.0.0.0:5555}
    2018-01-23 19:46:25.504:INFO:osjs.Server:main: Started @5097ms
    19:46:25.506 INFO - Selenium Grid node is up and ready to register to the hub
    19:46:25.555 INFO - Starting auto registration thread. Will try to register every 5000 ms.
    19:46:25.556 INFO - Registering the node to the hub: http://192.168.1.50:4444/grid/register
    19:46:25.802 INFO - The node is registered to the hub and ready to use
    
  • The following logs should be produced on the Selenium Grid Hub CLI :

    20:59:54.695 INFO - Registered a node http://192.168.1.50:5555
    
  • Snapshot of the Selenium Grid Hub Console :

Selenium Grid Hub Console

  • Write a basic program and execute from the Selenium Grid Node :

    public class test_IE_Grid 
    {
    
        @Test
        public void test1() throws MalformedURLException
        {
            System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe");
            DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
            URL url = new URL("http://192.168.1.50:4444/wd/hub");
            WebDriver driver = new RemoteWebDriver(url, cap);
            driver.get("http://google.com/");
            System.out.println("Title is : "+driver.getTitle());
            driver.quit();
        }
    }
    
  • Observe the following logs on Selenium Grid Node CLI :

    2018-01-23 20:31:49.931:INFO:osjshC.ROOT:qtp1582071873-15: org.openqa.selenium.remote.server.WebDriverServlet-34123d65: Initialising WebDriverServlet
    20:31:49.976 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@5769309d
    20:31:49.990 INFO - /session: Executing POST on /session (handler: BeginSession)
    
    20:31:50.085 INFO - Capabilities are: Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: }
    20:31:50.089 INFO - Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.ie.InternetExplorerDriverService)
    Started InternetExplorerDriver server (64-bit)
    3.7.0.0
    Listening on port 18597
    Only local connections are allowed
    20:31:59.237 INFO - Detected dialect: W3C
    20:31:59.592 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3
    20:31:59.593 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing POST on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/url (handler: ServicedSession)
    20:31:59.663 INFO - To upstream: {"url":"http://google.com/"}
    20:32:11.793 INFO - To downstream: {"value":null}
    
    
    20:32:11.821 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3
    20:32:11.823 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing GET on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7/title (handler: ServicedSession)
    20:32:11.844 INFO - To downstream: {"value":"Google"}
    
    
    20:32:11.856 INFO - Found handler: org.openqa.selenium.remote.server.ServicedSession@40024bf3
    20:32:11.857 INFO - Handler thread for session b020db2b-f3db-43f6-a3db-7a21b8c440f7 (internet explorer): Executing DELETE on /session/b020db2b-f3db-43f6-a3db-7a21b8c440f7 (handler: ServicedSession)
    20:32:11.870 INFO - To downstream: {"value":null}
    
    
    20:32:11.883 INFO - Removing session org.openqa.selenium.remote.server.ServicedSession@40024bf3
    20:32:11.890 INFO - To downstream: { "value" : null }
    
  • Observe the following logs on Selenium Grid Hub CLI :

    20:31:49.855 INFO - Got a request to create a new session: Capabilities {browserName: internet explorer, ensureCleanSession: true, platform: WINDOWS, version: }
    
    20:31:49.866 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, se:CONFIG_UUID=dd5107be-46cc-4411-816e-e51177b854c6, browserName=internet explorer, maxInstances=1, platform=WINDOWS}
    
  • IDE Console Output :

    Jan 23, 2018 9:18:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Title is : Google
    PASSED: test1
    
    ===============================================
        Default test
        Tests run: 1, Failures: 0, Skips: 0
    ===============================================
    
    
    ===============================================
    Default suite
    Total tests run: 1, Failures: 0, Skips: 0
    ===============================================
    
Auramine answered 23/1, 2018 at 15:51 Comment(10)
Ok, I have read carefully your solution and this is fully repeating what I do except IP address of grid hub using for registering the node. Ok, I changed this address to "correct" (which grid hub console shows) and nothing changed - same problem as described in my post. Also described "mismatch" didn't affect node registration to the hub as you can see on my screenshots. So still unresolvedThunderclap
Its clear you are still overstepping. You program is clearly missing to detect the dialect as W3C variant.Auramine
But in both cases node console shows me "INFO - Detected dialect: W3C". You can see this in my post's console outputs for success/fail cases.Thunderclap
Check out the answer update and let me know the status.Auramine
Ok I tried to add -Dwebdriver.ie.driver=IEDriverServer.exe but nothing changed.There is no need to specify path to the ie driver because I put it before to the Windows dir (which is in PATH var). And if node would not found iedriver it would not be able event to run it.Thunderclap
Added more description. Let me know the status.Auramine
Assuming that you can start IE node on Hub machine (Hub and IE node on same physical machine works), I believe the problem could be due to dynamic/ephemeral port communication between IE node machine and Hub machine. Can you start your IE node with -port option and see that the port is open from your Network team. Then tell us the logs you get. Command to start IE node with port (<portno> eg: 5793, if the port is open) option: java -jar <seleniumserverjarfilename.jar> -role node -hub http://<hubip>:4444/grid/register -port <portno>Microcrystalline
Wait, "Write a basic program and execute from the Selenium Grid Node" - why to run from node? I am trying to run the test from same machine where the hub is running! I don't want to run the tests under the Windows machine, I want to run them from mac os machineThunderclap
And why to set iedriver path in the test? I guess that -Dwebdriver.ie.driver=IEDriverServer.exe is enoughThunderclap
Ok I tried another thing - Now I run hub at windows machine and node at windows machine (same machine of course). Hub is running at ip:4444/wd/hub and node is running at ip:5556/wd/hub. Run test with hub url specified (4444) - ie11 opens stucked at "This is the initial start page for the WebDriver server.". Run test with node url specified (5556) - everything works fine. No any specific error - only " Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@2243ca" is missing when run via the hub (4444)Thunderclap

© 2022 - 2024 — McMap. All rights reserved.