2016-04-26 5 views
10

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

Моя файловая структура

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/Test/Application.cfc включает отображения для обоих testbox/и cfselenium /.

Тестовый набор, seleniumtest.cfc расширяет testbox.system.BaseSpec и его beforeAll() и Afterall() функции экземпляра селеном, запустить его, и разорвать его вниз:

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

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

The Response of the Selenium RC is invalid: Failed to start new browser session: java.lang.RuntimeException: org.openqa.selenium.os.WindowsRegistryException: Problem while managing the registry, OS Version '6.1', regVersion1 = false Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:03' System info: host: 'myhostname', ip: 'myvm_ip_address', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_67' Driver info: driver.version: unknown

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

The Response of the Selenium RC is invalid: Failed to start new browser session: org.openqa.selenium.server.RemoteCommandException: Error while launching browser

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

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

Netstat –an | find “4444” 

После повторного запуска тестов, работает 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 

Глядя на журналы УТС, я см. следующее:

Apr 29, 2016 09:44:23 AM Information [ajp-bio-8012-exec-3] - Starting HTTP request {URL=' http://localhost:4444/selenium-server/driver/ ', method='POST'}

Должна быть папка селенового сервера под wwwroot? Это webdriver?

EDIT: Ответ на Dan, я загрузил chromedriver_win32 от http://chromedriver.storage.googleapis.com/index.html?path=2.21/, извлеченный в C: \ Program Files (x86) \ chromedriver, добавил это к моей PATH и перезагрузил виртуальную машину. После изменения драйвера от «* GoogleChrome» до «*» хрома, кажется, работают ... Я был в состоянии успешно выполнить следующий тест:

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

Так что я думаю, что мы на пути сюда.

Возможно, драйвер IE работает.

+0

James - есть синтаксическая ошибка: super.beforeAll ('siteUnderTest', '* selectedBrowser); нужна еще одна цитата после * selectedBrowser ... может быть, вырезать и вставить ошибку? –

+0

@MarkAKruger - да, исправно. – earachefl

+0

Возможно, еще одна опечатка здесь, но первая одинарная цитата супервызова не является однонаправленной одиночной цитатой - 'super.beforeAll ('siteUnderTest','. И где вы получили 'cfselenium.BaseSpec', что вы расширяетесь из cfc? Я не вижу этого как часть проекта на GitHub. –

ответ

3

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

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

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

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

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

ОБНОВЛЕНО

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

The Internet Explorer Driver Server This is required if you want to make use of the latest and greatest features of the WebDriver InternetExplorerDriver. Please make sure that this is available on your $PATH (or %PATH% on Windows) in order for the IE Driver to work as expected.

Download version 2.53.0 for (recommended) 32 Bit Windows IE or 64 bit Windows IE

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

Firefox также издает свой собственный драйвер:

Firefox driver is included in the selenium-server-stanalone.jar available in the downloads. The driver comes in the form of an xpi (firefox extension) which is added to the firefox profile when you start a new instance of FirefoxDriver.

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

+0

не повезло с IE?Мы должны поддержать его. Попробуй с Chrome. Забыл, что я удалил Firefox на своей виртуальной машине. – earachefl

+0

Я обновил вопрос, чтобы понять, что это работает, после изменения параметра драйвера на '* chrome'. Спасибо, Дэн! – earachefl

+0

Супер! Я посмотрю материал IE и обновляю свой ответ. Если Chrome работает, все сетевые биты разрабатываются. –

Смежные вопросы

 Смежные вопросы