Je souhaite démarrer Selenium Server automatiquement lorsque je lance un scénario de test nightwatch.js. J’ai modifié les parameters de selenium sur nightwatch.json en:
"selenium" : { "start_process" : true, "server_path" : "./selenium/selenium391.jar", "log_path" : "C:/Projects/reports", "host" : "127.0.0.1", "port" : 4444, "cli_args" : { "webdriver.chrome.driver" : "./selenium/chromedriver.exe", "webdriver.ie.driver" : "./selenium/IEDriverServer.exe", "webdriver.firefox.profile" : "./selenium/geckodriver.exe" } },
Cette configuration fonctionne lorsque j’utilise Chrome comme navigateur. Cependant, j’ai eu une erreur quand je l’ai lancé avec Firefox:
ERROR Response 500 POST /wd/hub/session (312ms) { value: { message: 'Unable to create new service: GeckoDriverService\nBuild info: ver sion: \'3.9.1\', revision: \'63f7b50\', time: \'2018-02-07T22:42:28.403Z\'\nSyst em info: host: \'IBS-PC192\', ip: \'192.168.1.115\', os.name: \'Windows 7\', os. arch: \'x86\', os.version: \'6.1\', java.version: \'1.8.0_112\'\nDriver info: dr iver.version: unknown', error: 'session not created' }, status: 33 }
Si j’exécute le serveur Selenium manuellement, le test nightwatch fonctionne sur Firefox. Comment résoudre ça?
Fichier nightwatch.json: pour Firefox
{ "src_folders" : ["tests"], "output_folder" : "reports", "custom_commands_path" : "", "page_objects_path" : "", "custom_assertions_path" : "", "globals_path" : "C:/Projects/global/globals.js", "live_output" : false, "parallel_process_delay" : 10, "disable_colors": false, "test_workers" : false, "selenium" : { "start_process" : true, "server_path" : "./selenium/selenium391.jar", "log_path" : "C:/Projects/reports", "host" : "127.0.0.1", "port" : 4444, "cli_args" : { "webdriver.chrome.driver" : "./selenium/chromedriver.exe", "webdriver.ie.driver" : "./selenium/IEDriverServer.exe", "webdriver.firefox.profile" : "./selenium/geckodriver.exe" } }, "test_settings" : { "default" : { "launch_url" : "http://localhost", "selenium_host" : "127.0.0.1", "selenium_port" : 4444, "silent" : true, "disable_colors": false, "screenshots" : { "enabled" : false, "path" : "" }, "desiredCapabilities" : { "browserName" : "firefox", "javascriptEnabled" : true, "acceptSslCerts" : true } },
Le contenu de selenium-debug.log
14:24:00.791 INFO - Selenium build info: version: '3.9.1', revision: '63f7b50' 14:24:00.791 INFO - Launching a standalone Selenium Server on port 4444 2018-02-16 14:24:00.853:INFO::main: Logging initialized @280ms to org.seleniumhq.jetty9.util.log.StdErrLog 2018-02-16 14:24:00.962:INFO:osjs.Server:main: jetty-9.4.7.v20170914, build timestamp: 2017-11-21T22:27:37+01:00, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8 2018-02-16 14:24:00.978:WARN:osjs.SecurityHandler:main: ServletContext@osjsServletContextHandler@5ed7a6{/,null,STARTING} has uncovered http methods for path: / 2018-02-16 14:24:00.978:INFO:osjsh.ContextHandler:main: Started osjsServletContextHandler@5ed7a6{/,null,AVAILABLE} 2018-02-16 14:24:01.352:INFO:osjs.AbstractConnector:main: Started ServerConnector@18f65a4{HTTP/1.1,[http/1.1]}{0.0.0.0:4444} 2018-02-16 14:24:01.352:INFO:osjs.Server:main: Started @782ms 14:24:01.352 INFO - Selenium Server is up and running on port 4444 2018-02-16 14:24:01.540:INFO:osjshC.ROOT:qtp17048053-10: org.openqa.selenium.remote.server.WebDriverServlet-132ec19: Initialising WebDriverServlet 14:24:01.618 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1e1a802 14:24:01.618 INFO - /session: Executing POST on /session (handler: BeginSession) 14:24:01.680 INFO - Capabilities are: Capabilities {acceptSslCerts: true, browserName: firefox, javascriptEnabled: true, name: Google Wiki} 14:24:01.680 INFO - Capabilities {acceptSslCerts: true, browserName: firefox, javascriptEnabled: true, name: Google Wiki} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.firefox.GeckoDriverService)
L’erreur que vous constatez nous donne un indice sur ce qui ne va pas comme suit:
ERROR Response 500 POST /wd/hub/session (312ms) { value: { message: 'Unable to create new service: GeckoDriverService\nBuild info: version: \'3.9.1\', revision: \'63f7b50\', time: \'2018-02-07T22:42:28.403Z\'\nSystem info: host: \'IBS-PC192\', ip: \'192.168.1.115\', os.name: \'Windows 7\', os.arch: \'x86\', os.version: \'6.1\', java.version: \'1.8.0_112\'\nDriver info: driver.version: unknown', error: 'session not created' }, status: 33 }
Le code de réponse d’erreur du serveur HTTP 500 (HyperText Transfer Protocol) indique que le serveur a rencontré une condition inattendue qui l’a empêché de répondre à la demande.
La raison principale est que les fichiers binarys que vous utilisez sont incompatibles en tant que:
Une solution rapide consisterait à:
CCleaner
pour effacer les tâches du système d’exploitation avant et après l’exécution de votre suite de tests Comme vous l’avez mentionné dans votre commentaire, vous avez toujours la même erreur, vous devez modifier la ligne suivante:
"webdriver.firefox.profile" : "./selenium/geckodriver.exe"
À :
"webdriver.gecko.driver" : "./selenium/geckodriver.exe"