CFSelenium " не удалось запустить новый сеанс браузера"

у меня возникли проблемы с CFSelenium/TestBox. Я разрабатываю на Windows 7 VM, Coldfusion 10. Я загрузил новую копию cfselenium из https://github.com/teamcfadvance/CFSelenium/archive/master.zip.

моя структура файла

wwwroot |
  cfselenium |
    Selenium-RC |
        Selenium-server-standalone-2.46.0.jar
    Selenium.cfc
    Server.cfc
  Testbox |
    … various testbox files
   MySite |
    Tests|
        Specs |
            … my test files
            seleniumtest.cfc
        Application.cfc
        Index.cfm

MySite / Тест / Приложение.cfc включает сопоставления как для testbox/, так и для cfselenium/.

набор тестов, seleniumtest.cfc расширяет testbox.система.BaseSpec, и его beforeAll() и функции afterAll () создают экземпляр selenium, запускают его и разрывают:

component extends="testbox.system.BaseSpec" {

function beforeAll( ){
        // create Selenium class
        selenium = new cfselenium.Selenium();
        // Start it up.
        selenium.start( "mysite", "*chrome" );
    }

    // executes after all suites+specs in the run() method
    function afterAll(){
        selenium.stop();
        selenium.stopServer();
    }

function run( testResults, testBox ){
    describe('selenium', function(){
        // hello world equivalent
        describe('equality', function(){
            it('true should be true', function(){
                expect( true ).toBe(true);
            });
        });
    });
}
}

новое поведение: при передаче следующего в selenium.start ():

selenium.start( "https://www.google.com", "*googlechrome" );

Я получаю следующую ошибку:

ответ Selenium RC недействителен: не удалось запустить новый сеанс браузера: java.ленг.RuntimeException: org.openqa.селен.ОС.WindowsRegistryException: проблема при управлении реестром, версия ОС '6.1', regVersion1 = ложная информация о сборке: версия: '2.42.2', редакция: '6a6995d', время: '2014-06-03 17:42: 03' информация о системе: хост: 'myhostname', ip: 'myvm_ip_address', os.имя: 'Windows 7', os.arch:' amd64', os.версия:' 6.1', java.версия: '1.7.0_67' информация о драйвере: driver.версия: неизвестно!--9-->

для всех других версий url или браузера я передаю selenium.start () (я пробовал "* chrome", "* firefox", "*iexplore", "* iexploreproxy"), я получаю следующую ошибку:

ответ Селена RC неверный: не удалось запустить новый сеанс браузера: org.openqa.селен.сервер.RemoteCommandException: ошибка при запуске браузера

из трассировки стека я вижу, что он терпит неудачу в selenium.DoCommand().

из другого сообщения SO было высказано предположение, что если порт 4444 в настоящее время используется, он может мешать серверу selenium-RC. Я перезапустил свою виртуальную машину и проверил, что порт 4444 не используется, запустив

Netstat –an | find “4444”

после повторного запуска теста suite, запуск netstat с той же командой показал

TCP    0.0.0.0:4444           0.0.0.0:0              LISTENING
TCP    127.0.0.1:4444         127.0.0.1:49209        ESTABLISHED
TCP    127.0.0.1:49209        127.0.0.1:4444         ESTABLISHED
TCP    [::]:4444              [::]:0                 LISTENING
TCP    [::1]:4444             [::1]:49208            ESTABLISHED
TCP    [::1]:49208            [::1]:4444             ESTABLISHED

глядя на журналы cf, я вижу следующее:

29 апреля 2016 09:44: 23 Am информация [ajp-bio-8012-exec-3] - Запуск HTTP-запроса {URL='http://localhost:4444/selenium-server/driver/', method= 'POST'}

должна ли быть папка selenium-server под wwwroot? Это webdriver?

EDIT: за ответ Дана, я загрузил chromedriver_win32 от http://chromedriver.storage.googleapis.com/index.html?path=2.21/, извлеченный к C:Program Files (x86)chromedriver, добавил Это к моему пути и перезагрузил виртуальную машину. После изменения драйвера с "* googlechrome " на "* chrome " он, похоже, работает... Мне удалось успешно выполнить следующий тест:

function testIncludes(){
      selenium.open("https://www.google.com");
      $assert.isEqual("Google", selenium.getTitle());
 }

Итак, я думаю, мы на пути сюда.

кажется, что драйвер IE также работает.

1 ответов


Selenium не может запускать Chrome без драйвера Chrome (поскольку Chrome больше не является частью webkit), а Selenium может запускать браузеры webkit только по умолчанию. Вы должны иметь возможность запускать Firefox (если он установлен) без каких-либо дополнительных двоичных файлов.

чтобы заставить Chrome работать, вам нужно будет сделать следующее:

  1. загрузите корзину драйверов chrome.
  2. добавить его в свой путь.
  3. селен должен иметь возможность запускать браузер.

в коде могут быть некоторые другие проблемы, но я чувствую, что комментарии предоставили достаточно отзывов в этом отношении.

вы можете скачать драйвер с: https://sites.google.com/a/chromium.org/chromedriver/downloads

обновлено

IE также требует драйвера:

Сервер Драйверов Internet Explorer Это необходимо, если вы хотите использовать последний и самые большие возможности WebDriver InternetExplorerDriver. Убедитесь, что это доступно на вашем $PATH (или %PATH% в Windows), чтобы драйвер IE работал так, как ожидалось.

скачать версию 2.53.0 для (рекомендуется) 32 бит Windows IE или 64 бит Windows IE

выше было от:http://www.seleniumhq.org/download/ в отношении управлять окнами. Кажется, что хост с браузером необходимо запустить веб-драйвер Selenium специально для IE

Firefox также публикует свой собственный водитель:

драйвер Firefox включен в selenium-server-stanalone.jar доступен в загрузках. Драйвер поставляется в виде xpi (расширение firefox), который добавляется в профиль firefox при запуске нового экземпляра FirefoxDriver.

более подробную информацию можно найти здесь. Он работает аналогично Chrome и IE водители. Важно понимать, что, поскольку тесты выполняются на одном хосте, а браузеры удаленны от того, где выполняются тесты, вы можете также посмотреть на сетку Selenium.