Selenium Grid 2 с использованием RemoteWebDriver выдает ложное исключение - PullRequest
1 голос
/ 06 декабря 2011

У меня есть игра!Приложение Framework (на основе v1.2.3), использующее модуль WebDrive (на основе v0.2) для запуска тестов Selenium в браузере через WebDriver.Я настроил этот модуль так, чтобы он позволял мне запускать RemoteWebDriver для запуска тестов на другом компьютере.

Если я подключаю этот RemoteWebDriver напрямую к автономному серверу Selenium (используя v2.14), то все работает нормально.

Если я настрою конфигурацию Grid с хаб-сервером и узловым сервером, который регистрируется на хабе, а затем наведу RemoteWebDriver на хаб, я получу следующее исключение:

Exception in thread "main" org.openqa.selenium.WebDriverException: Could not start Selenium session: org%2Eopenqa%2Egrid%2Ecommon%2Eexception%2EGridException%3A+Error+forwarding+the+new+session+cannot+find+%3A+%7BbrowserName%3D%2Achrome%7D; duration or timeout: 59 milliseconds
Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-34-generic', java.version: '1.6.0_26'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:113)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:400)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:115)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:76)
at play.modules.webdrive.WebDriverRunner.runRemote(WebDriverRunner.java:204)
at play.modules.webdrive.WebDriverRunner.runDecider(WebDriverRunner.java:64)
at play.modules.webdrive.WebDriverRunner.main(WebDriverRunner.java:56)
Caused by: java.lang.RuntimeException: Could not start Selenium session: org%2Eopenqa%2Egrid%2Ecommon%2Eexception%2EGridException%3A+Error+forwarding+the+new+session+cannot+find+%3A+%7BbrowserName%3D%2Achrome%7D
at com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:123)
at org.openqa.selenium.internal.selenesedriver.NewSession.apply(NewSession.java:34)
at org.openqa.selenium.internal.selenesedriver.NewSession.apply(NewSession.java:30)
at org.openqa.selenium.SeleneseCommandExecutor.execute(SeleneseCommandExecutor.java:132)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:382)
... 5 more

В своих возможностях я указываю, что мне нужен драйвер "firefox", а не "* chrome".Я видел, что «* имя браузера » - это определение Selenium RC старого стиля, но я нигде не использую его, только определение стиля RemoteWebDriver.

Вот соответствующая частькод:

DesiredCapabilities capabilities = new DesiredCapabilities();
//      capabilities.setBrowserName("firefox");
        capabilities = DesiredCapabilities.firefox();

        System.out.println("<><><><><><><><><><><><><><><><><><><><><><><><>" + capabilities.getBrowserName());
        CommandExecutor executor = new SeleneseCommandExecutor(new URL(System.getProperty("webdrive.remoteUrl")), new URL(appUrlBase + "/@tests/init"), capabilities);
        WebDriver webDriver = new RemoteWebDriver(executor, capabilities);

        System.out.println("~ Starting tests remotely with " + capabilities.getBrowserName());   

        runTests(seleniumTests, webDriver);

и он падает на строку, где я создаю новый RemoteWebDriver.Я попробовал оба способа настройки браузера, и sysout подтверждает, что он там правильно.Я никогда не смогу увидеть вторую сисуту.

Что я делаю не так?:)

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