Find which node my selenium-grid remote driver is running on?

南楼画角 提交于 2019-12-02 05:01:33

问题


I obtain a RemoteWebDriver from the hub as follows:

RemoteWebDriver driver = new RemoteWebDriver( 
                                      new URL("http://whatever:4444/wd/hub"),
                                      DesiredCapabilities.internetExplorer() );

Is there a way to programatically find out which node in the grid the remote driver is running on?

I want to log this in an effort to track down intermittent test failures.


回答1:


Please refer to this blog post of mine to learn how to find out the node ip and port to which the test was routed to.

Blog post : https://rationaleemotions.wordpress.com/2016/01/15/where-did-my-test-run/

In a nutshell, here's what you need to do (The blog I shared has elaborate explanation and required code )

  • Get the session id from webdriver via Webdriver.getSessionId()
  • You then append the session id obtained from the previous step to the URL http://localhost:4444/grid/api/testsession?session= (replace localhost with the actual Grid IP/host and replace 4444 with the port on which grid is listening to) and trigger a POST call.
  • From the JSON response you parse the value of attribute proxyId as a URL and extract out the IP and port from it.

This is now available for ready consumption via the library talk2grid that I built.



来源:https://stackoverflow.com/questions/40925012/find-which-node-my-selenium-grid-remote-driver-is-running-on

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!