Иногда я получаю сообщение об ошибке: сервер досрочно завершил работу со статусом 1 - PullRequest
0 голосов
/ 22 апреля 2020

Я написал автотест, который проверяет страницу входа. Данные тестирования записываются в файл json. index. js:

const fs = require("fs");
fs.writeFileSync("testReport.json", "{}", "utf-8");
const { login } = require("./tests/login");

const autotests = async () => {
    await login();
};
try {
    autotests();
} catch (e) {
  console.log(e);
} 

login. js:

const { By, Key, until } = require("selenium-webdriver");
const webdriver = require("selenium-webdriver");
require("chromedriver");
const fs = require("fs");

module.exports = {
  login: async () => {
      let check = {};
      try {
        let loginName = "loginName";
        let password = "Password";
        await driver.get("http://test.com:7777");
        await driver.wait(until.elementLocated(By.id('user')), 10000)
        await driver.findElement(By.id('user')).sendKeys(loginName, Key.ENTER);
        await driver.findElement(By.id('password')).sendKeys(password, Key.ENTER)
        await driver.wait(until.elementLocated(By.className('content')), 10000)

        check.error = "NO Error";
        check.status = "passed";
      } catch (e) {
        check.error = e;
        check.status = "not passed";        
      } finally {
        await driver.quit();
        console.log("Done")
      }
      let readData = fs.readFileSync("testReport.json", "utf8");
      let readDataTestReport = JSON.parse(readData);
      readDataTestReport.test = check;
      fs.writeFileSync( "testReport.json", JSON.stringify(readDataTestReport), "utf-8" );
    }
  };

Тест работает нормально. Но с частотой один раз каждые 5-7 пусков выдает такую ​​ошибку. Я получаю эту ошибку:

Done 
(node:2788) UnhandledPromiseRejectionWarning: Error: Server terminated early with status 1
    at D:\ProjectsNode.js\autotests.project\node_modules\selenium-webdriver\remote\index.js:251:52
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:2788) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated         
            either by throwing inside of an async function without a catch block, or by rejecting a
            promise which was not handled with .catch(). To terminate the node process on unhandled 
            promise rejection, use the CLI flag `--unhandled-rejections=strict` 
            (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:2788) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, 
                     promise rejections that are not handled will terminate the Node.js process with 
                     a non-zero exit code.

Почему иногда возникает такая ошибка?

1 Ответ

0 голосов
/ 22 апреля 2020

Убедитесь, что ваш driver.quit() обработан правильно, так как он возвращает обещание.

try {
  await driver.quit();
} catch(e) {
  console.log('Failed to close webdriver due: ' + e.message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...