Let's try to understand why we need Selenium Grid by analyzing a scenario. You have a web application that needs to be tested on the following browser-machine combinations:
- Google Chrome on Windows 10
- Google Chrome on macOS
- Internet Explorer 11 on Windows 10
- Firefox on Linux
We can simply alter the test script we created in the previous chapter and point to the Selenium Standalone Server running on each of these combinations (that is, Windows 10, macOS, or Linux), as shown in the following code.
Windows 10:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setBrowserName("chrome");
caps.setPlatform(Platform.WIN10);
WebDriver driver = new RemoteWebDriver(new URL("http://<win_10_ip>:4444/wd/hub"), capabilities);
macOS:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setBrowserName("chrome");
caps...