Selenium Grid 2 настроен на Windows - PullRequest
6 голосов
/ 29 июля 2011

Я устанавливаю Selenium Grid 2 (selenium-server-standalone-2.1.0) в Windows 7 (я также пробовал Windows Server 2008) как 64-разрядную версию.Я тестирую WebDriver локально, и все хорошо.

Я запускаю концентратор с:

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

Добавление узла webDriver для FireFox работает, ночто-нибудь еще, например Google Chrome, вызывает исключение IllegalOperation.

Например:

Я пытаюсь добавить узел для Chrome:

java -jar selenium-server-standalone-2.1.0.jar -role webDriver -hub http://127.0.0.1:4444 -браузер browserName = платформа Chrome = версия Windows = 12 -порт 5556

Показывается как узел в концентраторе при переходе на http://localhost:4444/grid/console

Я добавляю код для вызова webDriver, например:

            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);

Я получаю исключение почти сразу:

{"не могу найти: {platform = windows, browserName =chrome, version = 12} "}

Кажется, что узел даже не найден.Я новичок в этом, это то, что я пропустил в настройке?(Internet Explorer делает то же самое, и изменение версий, похоже, не помогает).

Я искал часы и часы, но ничего, что соответствует исключению, не кажется таким общим, как моя проблема.

Ответы [ 5 ]

2 голосов
/ 06 сентября 2011

Документы на самом деле документируют это, но неясно.

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

Необходимо:

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

Вы пропустили grid/register из URL-адреса концентратора.Кроме того, если вы передаете несколько аргументов -browser, они должны быть заключены в кавычки и разделены запятыми без пробелов.Вам также необходимо передать свойство webdriver.chrome.driver аналогично тому, как я это сделал.

Чтобы проверить, успешно ли оно зарегистрировано, перейдите в браузер и нажмите:

http://localhost:4444/grid/console

И как примечание, это еще один способ объявить желаемые возможности:

DesiredCapabilities dc = DesiredCapabilities.chrome();
dc.setVersion("12");
dc.setPlatform(Platform.WINDOWS);
2 голосов
/ 31 июля 2011

Исключение IllegalOperation {"не удается найти: {platform = windows, browserName ... вызвано отсутствием возможности сопоставления (оно никогда не достигает узла).

Если я использую конфигурациюфайл, когда я запускаю узел, который явно указывает платформу и браузер, например:

{
"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",

        }
}

, и запускаю концентратор с этой строкой:java -jar selenium-server-standalone-2.2.0.jar -role webdriver -nodeConfig myconfig.json -hub http://[myIP]:4444/grid/register

и создать такие возможности:

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

Тогда тест работает(вы должны установить все зоны в IE, чтобы защитить кстати).NB. Я заметил, что Windows - это верхний регистр, как в Windows, или вы получаете сообщение об ошибке.

0 голосов
/ 01 апреля 2015
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 голосов
/ 10 декабря 2014

Вы можете установить

driver.quit();

в конце вашего скрипта

0 голосов
/ 06 сентября 2011

Попробуйте понизить условия, касающиеся версии Chrome и операционной системы:

Ваш код для регистрации узла будет следующим

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

И для создания вашего браузера:

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

или

DesiredCapabilities capability = DesiredCapabilities.chrome();

Может случиться так, что ваш Chrome обновился без вашего ведома или что номер версии "12" не совсем соответствует вашей установленной версии.Если он работает в этих условиях, попробуйте добавить «Platform = WINDOWS» и «Version» CapabilityTypes с новыми комбинациями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...