To run webdriver remotely using Python + VBox we need to run selenium standalone server on each machines Master and Slaves with different roles.
Master(Hub)
Slave1(Node)
...
Slave1(Node)
Run selenium server on Master PC with a hub role
>java -jar selenium-server-standalone-2.28.0.jar -role hub
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=chrome, platform=WINDOWS
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=firefox, platform=LINUX
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=safari, platform=MAC
Run webdriver commands on Master PC
>from selenium import webdriver
>browser_win = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'WINDOWS'})
>browser_nix = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'LINUX'})
>browser_mac = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'MAC'})
>browser_nix.get('http://google.com')
Now we're able to write tests which can be executed on remote and/or virtual machines.
Master(Hub)
Slave1(Node)
...
Slave1(Node)
Run selenium server on Master PC with a hub role
>java -jar selenium-server-standalone-2.28.0.jar -role hub
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=chrome, platform=WINDOWS
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=firefox, platform=LINUX
Run selenium instance on Slave VBox with webdriver or node role
>java -jar selenium-server-standalone-2.28.0.jar -role webdriver -hub http://<Hub IP address>:4444/grid/register -browser browserName=safari, platform=MAC
Run webdriver commands on Master PC
>from selenium import webdriver
>browser_win = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'WINDOWS'})
>browser_nix = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'LINUX'})
>browser_mac = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities={'browserName':'firefox', 'platform':'MAC'})
>browser_nix.get('http://google.com')
Now we're able to write tests which can be executed on remote and/or virtual machines.
No comments:
Post a Comment