In previous posts, We have seen how to set up hub and nodes. But still we have not seen how to run your code on some remote machines.But code execution on remote machine could not be possible without RemoteWebDriver. But before moving ahead we need to cast our focus on this RemoteWebDriver.
\ This is implementation class of WebDriver interface which is plays a key role in script execution on some remote machine.RemoteWebDriver is divided in two parts
1- RemoteWebDriver Server
2- RemoteWebDriver Client
RemoteWebDriver Server: This part listens to all the request on a certain port from all the RemoteWebdriver client and on the basis of these request it approaches Firefox, Chrome or IR driver to fulfill the client request. So here when we run this command
java -jar <Selenium-server-stanalone 2.4X.x.jar>we try to start the remote server. RemoteWebDriver Client: All the language binding works as RemoteWebDriver client which comes into action when we try to execute any script. This client first tries to translate all the information related to code execution in JSON format and send it to the remoteWebdriver server using JSON wire protocol and then server talks to all the drivers available as per the request. So now you are familiar with the concept of RemoteWebDriver but how it servers your purpose.
WebDriver driver = new RemoteWebDriver(java.net.URL remoteAddress, Capabilities desiredCapabilities)where URL is nothing but the it is URL of Hub that we have used in previous post like

DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setBrowserName("firefox"); capabilities.setVersion("40.0"); capabilities.setPlatform(Platform.WINDOWS);So these are two important components of the script that are going to be executed on the remote machine using Grid concept. So let’s write the complete code that runs on the Selenium Grid. 1- Start the hub and node. 2- Write the code Scenario : a) Open the Firefox browser on remote machine(Node) b) Navigate to Google and enter string “Selenium Grid Tutorial” in the search box So create one class GridExampleTest in your eclipse under package pack1 and past the following code
package pack1; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.Platform; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.Test; public class GridExampleTest { @Test public void test() throws MalformedURLException { DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setBrowserName("firefox"); capabilities.setVersion("40.0"); capabilities.setPlatform(Platform.WINDOWS); RemoteWebDriver driver = new RemoteWebDriver(new URL( "http://192.168.0.103:4444/wd/hub"), capabilities); driver.get("http://google.com"); driver.findElement(By.name("q")).sendKeys("Selenium Grid Tutorial"); driver.findElement(By.name("q")).sendKeys(Keys.ENTER); } }3- Now run the code. Above code will execute complete scenario on Windows machine with Firefox browser with version 40.0.
Leave a Reply