2014-12-01 7 views
6

Odziedziczyłem projekt w pracy bez dokumentacji. Jest to aplikacja sails.js. Jest mały zestaw testów jednostkowych i test końcowy.Połączenie odrzucone! Czy serwer selenowy został uruchomiony

Kiedy próbuję uruchomić test end-to-end za pomocą gruntu. Otrzymuję:

$ grunt e2e 
Running "nightwatch" task 
started - PID: 5440 
>> Executing "default" tests (standalone) 

[Index] Test Suite 
================== 

Running: Should clean the collection 

removing 0 places 
>> Connection refused! Is selenium server started? 

Nie wiem, czego mógłbym przegapić. To utknęło mi przez ponad tydzień.

Projekt ma selenium-server-standalone-2.40.0.jar w chrząkanie-nocny zegarek. Więc biorę PID jest uruchamianie serwera selenu. Jeśli zacznę słoik pierwszy (poza grunt) uzyskać

$ grunt e2e 
org.openqa.grid.selenium.GridLauncher main 
INFO: Launching a standalone server 
18:38:46.189 WARN - Failed to start: [email protected]:4444 
Exception in thread "main" java.net.BindException: Selenium is already running on port 4444. Or  some other service is. 
    at org.openqa.selenium.server.SeleniumServer.start(SeleniumServer.java:491) 
    at org.openqa.selenium.server.SeleniumServer.boot(SeleniumServer.java:300) 
    at org.openqa.selenium.server.SeleniumServer.main(SeleniumServer.java:245) 
    at org.openqa.grid.selenium.GridLauncher.main(GridLauncher.java:95) 
>> Could not start Selenium. 

Oto nightwatch.json

{ 
    "src_folders" : ["tests/e2e"], 
    "custom_commands_path" : "", 
    "custom_assertions_path" : "", 
    "globals_path" : "", 

    "selenium" : { 
    "start_process" : false, 
    "server_path" : "", 
    "log_path" : "", 
    "host" : "127.0.0.1", 
    "port" : 4444, 
    "cli_args" : { 
     "webdriver.chrome.driver" : "", 
     "webdriver.ie.driver" : "" 
    } 
    }, 

    "test_settings" : { 
    "default" : { 
     "launch_url" : "http://localhost", 
     "selenium_port" : 4444, 
     "selenium_host" : "localhost", 
     "silent": true, 
     "screenshots" : { 
     "enabled" : false, 
     "path" : "" 
     }, 
     "desiredCapabilities": { 
     "browserName": "chrome", 
     "javascriptEnabled": true, 
     "acceptSslCerts": true 
     } 
    }, 

    "chrome" : { 
     "desiredCapabilities": { 
     "browserName": "chrome", 
     "javascriptEnabled": true, 
     "acceptSslCerts": true 
     } 
    } 
    } 
} 

Ogromne dzięki za wszelką pomoc!

p.s. Jestem na Windows 7 polu

+0

Czy zacząłeś selen? Jak działa adres Twojej Selenium? Proszę wyjaśnić więcej szczegółów w swoim pytaniu. – acfreitas

+1

Witam @ AntônioCarlos Mam zaktualizowane pytanie, ale nie jestem pewien, jakie inne informacje dodać. – codemeasandwich

+0

Sprawdź, czy "Selen działa już na porcie 4444". Następnie skonfiguruj swój test tak, aby działał w https: // localhost: 4444. Używasz Jasmine? – acfreitas

Odpowiedz

4
"webdriver.chrome.driver" : "", 

musisz określić swoją lokalizację sterownika chrom w tym wierszu pliku nightwatch.json

Na przykład, używam:

"webdriver.chrome.driver" : "~/bin/chromedriver", 

także jesteś zaczynając selen, aby użyć sterownika chrome? Jeśli nie podczas uruchamiania selen, dołącz: -Dwebdriver.chrome.driver =/Users/[nazwa użytkownika]/bin/chromedriver

Więc po uruchomieniu serwera selenu, powinna ona wyglądać cmd przyłączeniowych: java -jar [ SeleniumServerName] -Dwebdriver.chrome.driver =/Users/[nazwa użytkownika]/bin/chromedriver

Pamiętaj, aby najpierw skopiować dysk CD do folderu seleniumserver i zmienić ścieżkę plików/folderów na podstawie systemu Windows.

7

Dziękuję bardzo za uwzględnienie pliku nightwatch.json.

Myślę, że Jordan wskazuje na część problemu. Po wyjęciu z pudełka nie udało mi się uruchomić Nightwatch na Chrome. Mój plik .json miał Firefoksa wszędzie, gdzie mówi Twoja Chrome. Musiałem pobrać Firefoksa i działało bez ustawiania sterowników wymienionych przez Jordan.

Moim następnym problemem był serwer.

Ustawiłem obiekt selenu start_process na wartość true; Nightwatch automatycznie uruchomi serwer po przeprowadzeniu testów z pomrukiem. Będziesz także musiał ustawić server_path na some/directory/selenium-server-standalone-2.40.0.jar.

Bez względu na to, czy rozwiąże to Twój natychmiastowy problem, prawdopodobnie zaoszczędzi Ci czasu w przyszłości, ponieważ nie musisz uruchamiać serwera , a następnie przeprowadzić testy.

+0

Też mam ten zestaw do prawda, ale dostaję ten sam błąd. –

+0

Spróbuj ponownie uruchomić komputer. Być może już masz inne zadanie selenowe działające gdzieś w porcie 4444. – Adam

2

na wszelki wypadek, gdy ktoś inny będzie miał podobne problemy.

Miałem ten problem przez ostatnie kilka dni. Problem był w moim przypadku, wersja chromedriver była niekompatybilna z wersją chrome. Nie mogłem powiedzieć z wyjścia na nocny zegar, ale dodałem wyjście z dziennika, które mi opowiadało.

Co widziałem początkowo

Starting selenium server... started - PID: 12835 
... 
{ Error: Unhandled "error" event. ([object Object]) 
    at ClientManager.emit (events.js:185:19) 
    at Nightwatch.<anonymous> (/home/n23430/dev/Ps.Web/WebTest/ps-web-test/node_modules/nightwatch/lib/runner/clientmanager.js:67:10) 
    at Object.onceWrapper (events.js:316:30) 
    at emitOne (events.js:115:13) 
    at Nightwatch.emit (events.js:210:7) 
    at HttpRequest.<anonymous> (/home/n23430/dev/Ps.Web/WebTest/ps-web-test/node_modules/nightwatch/lib/index.js:501:10) 
    at emitThree (events.js:135:13) 
    at HttpRequest.emit (events.js:216:7) 
    at IncomingMessage.<anonymous> (/home/n23430/dev/Ps.Web/WebTest/ps-web-test/node_modules/nightwatch/lib/http/request.js:168:16) 
    at emitNone (events.js:110:20) 
    at IncomingMessage.emit (events.js:207:7) 
    at endReadableNT (_stream_readable.js:1047:12) 
    at _combinedTickCallback (internal/process/next_tick.js:102:11) 
    at process._tickCallback (internal/process/next_tick.js:161:9) 
    context: 
    { message: 'Connection refused! Is selenium server started?\n', 
    data: { value: [Object], status: 33 } } } 

Jak zauważył problem W traceback powyżej, istnieje odniesienie do linii 501 w /node_modules/nightwatch/lib/index.js. Dodałem console.log oświadczenie tam, drukując 'dane' z tego miejsca, które odczytać ten (od początku):

{ 
    "value": { 
    "stacktrace": "org.openqa.selenium.SessionNotCreatedException: session not created exception: Chrome version must be >= 60.0.3112.0\n (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.0-79-generic x86_64) (WARNING: The server did not provide any stacktrace information)... 

Wnioski chromedriver wersji 2.33 potrzeb Chrome w wersji> = 60. Aktualizowanie Chrome rozwiązałem mój problem.

poważaniem Arii