Selenium webdriver退出,错误代码为135

时间:2016-09-06 16:33:49

标签: selenium-webdriver protractor runtime-error

我是量角器的新手。尝试使用量角器

运行Selenium测试时出现以下错误
I/hosted - Using the selenium server at http://localhost:4444/wd/hub
I/launcher - Running 1 instances of WebDriver
E/launcher - Error code: 135
E/launcher - Error message: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:4444
E/launcher - Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:4444
at ClientRequest.<anonymous>  (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\http\index.js:381:15)
at emitOne (events.js:77:13)
at ClientRequest.emit (events.js:169:7)
at Socket.socketErrorListener (_http_client.js:267:9)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at emitErrorNT (net.js:1269:8)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
From: Task: WebDriver.createSession()
at Function.createSession  (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:329:24)
at Builder.build (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\builder.js:458:24)
at Hosted.DriverProvider.getNewDriver (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\built\driverProviders\driverProvider.js:37:33)
at Runner.createBrowser (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\built\runner.js:187:43)
at c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\built\runner.js:261:30
at _fulfilled (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:834:54)
at self.promiseDispatch.done (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:863:30)
at Promise.promise.promiseDispatch (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:796:13)
at c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:556:49
at runSingle (c:\Users\SavDevService.SAVISIONLAB\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:137:13)
E/launcher - Process exited with error code 135

我检查了是否有其他进程正在侦听端口4444,但没有找到任何进程。我也正在使用--standalone标志运行web驱动程序。

9 个答案:

答案 0 :(得分:16)

似乎selenium服务器没有在http://127.0.0.1:4444/wd/hub上运行。在运行量角器测试之前,必须使用以下命令启动selenium服务器。webdriver-manager start。启动服务器后,您的测试将毫无错误地执行。

如果您不想手动启动selenium服务器,请从conf.js中删除seleniumAddress:http://localhost:4444/wd/hub属性。

答案 1 :(得分:4)

您还可以将这些行添加到conf.js文件中:

chromeOnly: true,
directConnect: true,

答案 2 :(得分:1)

启动webdriver,在开始执行自动化测试套件之前,通过在控制台屏幕中执行以下命令,可以更新Web驱动程序并启动Web驱动程序。

webdriver-manager update
webdriver-manager start

答案 3 :(得分:1)

通过以下命令检查您的网络驱动程序状态

 webdriver-manager status

如果它不是最新的,您可以按照以下步骤删除和安装它

 webdriver-manager clean
 webdriver-manager status
 webdriver-manager update
 webdriver-manager start

然后通过

启动您的网络驱动程序

如果您收到此错误

   ERROR [BaseServer.start] - Port 4444 is busy, please choose a free port and specify it using -port option

您可以通过此命令设置另一个端口(例如端口 4545)

 webdriver-manager start --seleniumPort 4545

然后你的 selenium 网络驱动程序将运行

答案 4 :(得分:0)

您是否为要测试的浏览器安装了selenium驱动程序? 试试

webdriver-manager update

它将负责为您安装驱动程序。您只需要运行一次,如果再次调用它,它将看到驱动程序已经安装且不会继续运行。

答案 5 :(得分:0)

您是否使用此命令webdriver-manager start启动了selenium服务器? 如果不是,您的配置可能与selenium服务器有问题。 我建议follow this thread

解决方案1 ​​

  1. 尝试webdriver-manager update --standalone
  2. 解决方案2

    1. 从位置C:\ Users \ HP \ AppData \ Roaming \ npm \ node_modules \ p rotractor \ selenium
    2. 删除以前的Web驱动程序实例(.jar文件)
    3. http://www.seleniumhq.org/download/下载selenium-server-standalone-2.45.0并替换.jar文件。

答案 6 :(得分:0)

我也遇到了这种类型的错误,但在设置环境变量之后,这个问题就解决了。 npm的位置; 例: C:\用户\应用程序数据\漫游\ NPM

答案 7 :(得分:0)

在本地运行directConnect时,protractor解决方案很不错,但在尝试在Jenkins上执行时,它不起作用。看起来在Jenkins的Docker容器中运行所有内容时,您必须首先以分离模式webdriver-manager start启动-d,等待,然后启动protractor

答案 8 :(得分:-1)

我以管理员身份运行Windows命令提示符并解决了这个问题。我不再看到这个问题了。 我还添加了

chromeOnly: true,
directConnect: true,