Случайный сбой теста транспортира с ошибкой «Ошибка: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:32572» - PullRequest
0 голосов
/ 10 февраля 2020

Мой тест транспортира случайно завершается с ошибкой. :

Failed: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:32572 
at ClientRequest.<anonymous> (C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\selenium-webdriver\http\index.js:238:15)
    at ClientRequest.emit (events.js:223:5)
    at Socket.socketErrorListener (_http_client.js:406:9)
    at Socket.emit (events.js:223:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)
From: Task: WebDriver.navigate().to(data:text/html,<html></html>)
    at Driver.schedule (C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\selenium-webdriver\lib\webdriver.js:807:17)
    at Navigation.to (C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\selenium-webdriver\lib\webdriver.js:1133:25)
    at Driver.get (C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\selenium-webdriver\lib\webdriver.js:988:28)
    at C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\protractor\built\browser.js:675:32
    at ManagedPromise.invokeCallback_ (C:\jenkins\workspace\QA-E2E\automation\SeleniumFramework\node_modules\selenium-webdriver\lib\promise.js:1376:14)

Версия узла: v12.14.1, npm версия: 6.13.4, версия транспортира: 5.4.2, версия webdriver-manager: 12.1.6

Примечание: I Я также использую async / await в моем тесте.

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Это происходило со мной, когда у меня больше фоновых процессов chromedriver.exe. Завершите все процессы в фоновом режиме или перезагрузите компьютер, и вы не должны увидеть эту ошибку.

0 голосов
/ 11 февраля 2020

Раньше была проблема go, когда эта ошибка была указана c для какого-либо хромогенератора, который должен был быть разрешен со стороны селена. Поскольку chromedriver 80 - совершенно новая версия, я предполагаю, что это всего лишь временная ошибка, которая скоро будет исправлена ​​

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

//////////////////////////////////////////////////////////////////////////////
// temporary work around to avoid 'ECONNREFUSED' error, preferably to find another solution
// remove the block when https://github.com/SeleniumHQ/selenium/pull/5759 will be merged && released

let httpIndexFile = "node_modules/selenium-webdriver/http/index.js";
fs.readFile(httpIndexFile, "utf8", function (err, data) {
    if (err) {
        throw err;
    }

    let result = data.replace(/\(e.code === 'ECONNRESET'\)/g, "(e.code === 'ECONNRESET' || e.code === 'ECONNREFUSED')");
    console.log(`Patching ${httpIndexFile}`);
    fs.writeFileSync(httpIndexFile, result, "utf8");
});

let chromeFile = "node_modules/selenium-webdriver/chrome.js";
fs.readFile(chromeFile, "utf8", function (err, data) {
    if (err) {
        throw err;
    }

    let result = data.replace(/new http.HttpClient\(url\)/g, "new http.HttpClient(url, new (require('http').Agent)({ keepAlive: true }))");
    console.log(`Patching ${chromeFile}`);
    fs.writeFileSync(chromeFile, result, "utf8");
});
//////////////////////////////////////////////////////////////////////////////
exports.config = {

Опять же, это была другая проблема, но твик должен работать так же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...