Selenium Grid 2 configured on Windows

I install Selenium Grid 2 (selenium-server-standalone-2.1.0) on Windows 7 (I also tried Windows Server 2008) as 64-bit. I am testing WebDriver locally and everything is fine.

I start the hub using

java -jar selenium-server-standalone-2.1.0.jar -role hub

Adding a webDriver node for FireFox works, but everything else, like Google Chrome, throws an IllegalOperation exception.

For instance:

I am trying to add node for Chrome:

java -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1-00-00444 -browser browserName = chrome platform = windows version = 12 -port 5556

This shows how node is on the hub when you go to http: // localhost: 4444 / grid / console

I am adding code to call webDriver, for example:

DesiredCapabilities capability = new DesiredCapabilities(); capability.SetCapability(CapabilityType.Platform, "windows"); capability.SetCapability(CapabilityType.Version, "12"); capability.SetCapability(CapabilityType.BrowserName, "chrome"); IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), capability); 

I get the exception almost immediately:

{"cannot find: {platform = windows, browserName = chrome, version = 12}"}

It seems that node is not even found. I'm new to this, is that what I missed in setting up? (Internet Explorer does the same, and changing versions don't seem to help).

I searched for hours and hours, but nothing matching the exception seems to be my problem.

+6
source share
5 answers

An exception IllegalOperation {"cannot find: {platform = windows, source_name ... is caused by the lack of matching (it never reaches Node).

If I use the configuration file when starting node, which explicitly indicates the platform and browser, for example:

 { "capabilities": [ { "browserName":"firefox", "maxInstances":1 }, { "browserName":"chrome", "platform":"WINDOWS", "maxInstances":1 }, { "browserName":"internet explorer", "version":"9", "platform":"WINDOWS", "maxInstances":1 } ], "configuration": { "cleanUpCycle":2000, "timeout":30000, "proxy":"org.openqa.grid.selenium.proxy.WebDriverRemoteProxy", "maxSession":5, "url":"http://[myIP]/wd/hub", } } 

and run the hub with this line:
java -jar selenium-server-standalone-2.2.0.jar -role webdriver -nodeConfig myconfig.json -hub http: // [myIP]: 4444 / grid / register

and create these features:

 DesiredCapabilities capability = new DesiredCapabilities(); capability.SetCapability(CapabilityType.Platform, "WINDOWS"); capability.SetCapability(CapabilityType.BrowserName, "internet explorer"); 

Then the test works (you must set all zones in IE to protect them).
Notabene I noticed that Windows is UPPERCASE, like in WINDOWS, or you get an error.

+2
source

The documents do document this, but it is unclear.

 java -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1:4444 -browser browserName=chrome platform=windows version=12 -port 5556 

Must be:

 java -Dwebdriver.chrome.driver="C:\Users\Mike\Documents\Java Libraries\Selenium\chromedriver\chromedriver.exe" -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1:4444/grid/register -browser "browserName=chrome,platform=WINDOWS,version=12" -port 5556 

You are missing the grid/register from the hub url. Also, if you pass multiple arguments to -browser , they must be enclosed in quotation marks and separated by commas without spaces. You also need to pass the webdriver.chrome.driver property webdriver.chrome.driver same way as I did.

You can verify that it is successfully registered by going to your browser and clicking:

 http://localhost:4444/grid/console 

And as a side element, this is another way to declare the desired features:

 DesiredCapabilities dc = DesiredCapabilities.chrome(); dc.setVersion("12"); dc.setPlatform(Platform.WINDOWS); 
+2
source

Try lowering the conditions for the chrome version and operating system:

Your node registration code will be as follows

 java -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1:4444 -browser browserName=chrome -port 5556 

And to create your browser:

 DesiredCapabilities capability = new DesiredCapabilities(); capability.SetCapability(CapabilityType.BrowserName, "chrome"); 

or

 DesiredCapabilities capability = DesiredCapabilities.chrome(); 

Your Chrome may have been updated without your notice, or that the version number โ€œ12โ€ is not suitable for your installed version. If it works under these conditions, try adding "Platform = WINDOWS" and "Version" CapabilityTypes with new combinations.

0
source

You can set

 driver.quit(); 

at the end of your script

0
source
 Lets consider Hub running on Machine-A whose IPAddress is = 192.168.10.10 default port no. 4444. Lets Node running on Machine-B whose IPAddress is = 192.168.10.20. Lets consider operating System on HUB and Node is installed on drive C:\ (C-Drive). create a folder named selenium on c:\ as c:\selenium. keep binaries of IExplorer.exe, chromeDriver.exe and Selenium-Standalone-server2.10.0.jar. (on both machine A and B). configuring HUB on Machine-A 1- open Command prompt 2- go to folder selenium using i type cd\ then enter ii type c: then enter iii c:> cd selenium then enter 3- java -jar selenium-server-standalone-2.20.0.jar -role hub Configuring NOde on Machine - B 1- open Command prompt 2- go to folder selenium using i type cd\ then enter ii type c: then enter iii c:> cd selenium then enter 3- java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://192.168.10.10:4444/grid/register -port 5560 -browser browserName=chrome,maxInstance=4,platform=WIN8_1 -Dwebdriver.ie.driver=c:\selenium\ChromeDriver.exe your node will get register with Hub on port 5560. Test Case will become as- package testCase; import static org.junit.Assert.*; import java.net.URL; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; public class Avinash_Google_Chrome { WebDriver driver; String baseUrl , nodeUrl; @Before public void setUp() throws Exception { nodeUrl = "http://192.168.10.20:5560/wd/hub"; //Machine-A IPAdress with Port No. DesiredCapabilities capability = DesiredCapabilities.chrome(); driver = new RemoteWebDriver(new URL(nodeUrl),capability); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES); } @After public void tearDown() throws Exception { driver.quit(); } @Test public void test() throws InterruptedException { driver.get("https://www.google.co.in"); Thread.sleep(3000); driver.findElement(By.linkText("Gmail")).click(); Thread.sleep(3000); driver.findElement(By.id("Email")).sendKeys(" aavinashpande@gmail.com "); driver.findElement(By.id("Passwd")).sendKeys("********"); driver.findElement(By.id("signIn")).click(); Thread.sleep(6000); } } 
0
source

Source: https://habr.com/ru/post/893891/


All Articles