Reputation: 1750
I ran the following commands to get my selenium grid / hub up and running:
hub: java -jar selenium-server-standalone-3.14.0.jar -role hub
node: java -jar selenium-server-standalone-3.14.0.jar -role node -hub http://localhost:4444/grid/register
when I check the hub console, I see that my webdriver is registered, and ready to use...
I connected to the hub via:
driver = webdriver.Remote(
command_executor='http://localhost:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME)
and it connects fine...however, if i don't have chromedriver (like if I was to do it w/o grid) downloaded and installed in $PATH, the application fails.
Is this normal? I was under the impression, the whole point of selenium-grid and all this remote logic was to ensure that the individual drivers don't need to be installed on the "client" machine.
Upvotes: 0
Views: 1432
Reputation: 896
yes its mandatory to install browser and its compatible driver on client machine Below image will clear how it works
Upvotes: 1
Reputation: 12255
Selenium don't controls browser, driver do. Selenium with hub role is server and balancer to selenium with node role, and node speaks with driver. You need selenium jar and drivers on each client machine which will speaks with hub.
How it works with hub:
⇄ node ⇄ driver ⇄ browser (same machine)
code ⇄ hub ⇄ node ⇄ driver ⇄ browser (another machine)
⇄ node ⇄ driver ⇄ browser (another machine)
Upvotes: 1