拒绝连接! selenium服务器启动了

我inheritance了一个没有文档的项目。 这是一个sails.js应用程序。 有一小组unit testing和一个端到端的testing。

当我尝试使用grunt运行端到端testing时。 我得到:

$ 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? 

我不知道我可能会错过什么。 这让我坚持了一个多星期。

该项目有一个selenium服务器独立-2.40.0.jar在咕night声夜表。 所以我把这个PID是selenium服务器启动的。 如果我先启动jar(外面的咕噜声)我得到

 $ grunt e2e org.openqa.grid.selenium.GridLauncher main INFO: Launching a standalone server 18:38:46.189 WARN - Failed to start: SocketListener0@0.0.0.0: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. 

这是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 } } } } 

非常感谢任何帮助!

ps在Windows 7的盒子上

非常感谢包括nightwatch.json文件。

我认为约旦指出了这个问题的一部分。 开箱即用,我还没有能够让Nightwatch在Chrome上运行。 我的.json文件在你的Chrome浏览器中都有。 我不得不下载火狐浏览器,它没有真正设置约旦提到的司机。

我的下一个问题是服务器。

我把selenium对象的start_process设置为true; 当你用咕噜声运行testing时,守夜将自动启动服务器。 您还需要将server_path设置为some/directory/selenium-server-standalone-2.40.0.jar

不pipe这是否解决了您的问题,通过不必启动服务器可以节省您的时间。

  "webdriver.chrome.driver" : "", 

您需要在nightwatch.json文件的这一行内指定您的chrome驱动程序位置

例如,我使用:

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

你也开始selenium使用铬驱动程序? 如果不是当你启动selenium,追加:-Dwebdriver.chrome.driver = /用户/ [用户名] / bin / chromedriver

所以当你启动selenium服务器,它应该看起来像terminalcmd:java -jar [SeleniumServerName] -Dwebdriver.chrome.driver = /用户/ [用户名] / bin / chromedriver

请记住先将CD放入seleniumserver文件夹中,并根据Windows更改文件/文件夹path结构。

以防万一任何人同样地挣扎。

最近几天我有这个问题。 问题在于我的情况,chromedriver版本与chrome版本不兼容。 我不能告诉从nightwatch输出,但添加了一个日志输出告诉我。

我最初看到的

 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 } } } 

我如何发现问题在上面的回溯中,在/node_modules/nightwatch/lib/index.js中有对501行的引用。 我在那里添加了一个console.log语句,从这里打印出“数据”,它从头开始读取:

 { "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)... 

结论 chromedriver版本2.33需要铬版本> = 60.更新chrome解决了我的问题。

亲切的问候,阿里尔