Browser.wait () завершается с ошибкой при использовании в конвейере сборки, но отлично работает на локальном компьютере

#typescript #azure #jasmine #protractor #azure-devops

#typescript #azure #jasmine #транспортир #azure-devops

Вопрос:

Я использую Azure DevOps для запуска моих тестовых примеров Protractor на компьютере сборки. Ранее весь код работал нормально, но внезапно на компьютере сборки начался сбой без какого-либо намека вообще. Тестовый пример завершается с ошибкой при запуске браузера.wait вызывается в тестовом примере E2E.

Я также проверил, что версии браузера локального компьютера и агента сборки одинаковы. Код выполняется на моем локальном компьютере без каких-либо ошибок.

Код страницы входа

login.po.ts:

 login() {
browser.wait(ExpectedConditions.visibilityOf(element(by.id('xxx'))), 9000);
element(by.id('xxx')).sendKeys("test");
}
  

Run.spec.ts:

 it block for Protractor where login code is called
    it("Should display title ", () => {
        loginpage.login();
});
  

Я запускаю код, используя ng E2E.
Локальная версия Yarn — 1.15.2, как и агента сборки.
Локальная версия узла — 10.14.1, как и агента сборки.
Версия Chrome 73.0.3683.86

Сообщение об ошибке в агенте сборки:

 none 
at D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:668:7
[06:08:00] E/launcher - Process exited with error code 199
An unexpected error occurred: undefined
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
##[error]Error: The process 'D:BA0_toolyarn1.15.2x64yarn-v1.15.2binyarn.cmd' failed with exit code 1
```
[06:03:19] E/launcher - timeout: Timed out receiving message from renderer: 10.000
  (Session info: chrome=73.0.3683.103)
  (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.14393 x86_64)
[06:03:19] E/launcher - TimeoutError: timeout: Timed out receiving message from renderer: 10.000
  (Session info: chrome=73.0.3683.103)
  (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.14393 x86_64)
    at Object.checkLegacyResponse (D:BA010ssrcclientnode_modulesselenium-webdriverliberror.js:546:15)
    at parseHttpResponse (D:BA010ssrcclientnode_modulesselenium-webdriverlibhttp.js:509:13)
    at doSend.then.response (D:BA010ssrcclientnode_modulesselenium-webdriverlibhttp.js:441:30)
    at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.takeScreenshot()
    at Driver.schedule (D:BA010ssrcclientnode_modulesselenium-webdriverlibwebdriver.js:807:17)
    at Driver.takeScreenshot (D:BA010ssrcclientnode_modulesselenium-webdriverlibwebdriver.js:1085:17)
    at run (D:BA010ssrcclientnode_modulesprotractorbuiltbrowser.js:59:33)
    at ProtractorBrowser.to.(anonymous function) [as takeScreenshot] (D:BA010ssrcclientnode_modulesprotractorbuiltbrowser.js:67:16)
    at D:BA010ssrccliente2eprotractor.conf.js:96:33
    at ManagedPromise.invokeCallback_ (D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:1376:14)
    at TaskQueue.execute_ (D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:3084:14)
    at TaskQueue.executeNext_ (D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:3067:27)
    at asyncRun (D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:2927:27)
    at D:BA010ssrcclientnode_modulesselenium-webdriverlibpromise.js:668:7
[06:03:19] E/launcher - Process exited with error code 199
  

Ожидается в агенте сборки: выполнено успешно

Комментарии:

1. Хорошо, что это сообщение об ошибке очень полезно. Я ненавижу это за тебя. Это, вероятно, будет болезненным. Удачи!

2. Не могли бы вы поделиться своим config файлом

3. Выполняется ли это внутри образа docker в конвейере или любого другого контейнера?

4. Я не знаю, что такое docker image, но когда я подключаюсь к агенту сборки, я не могу увидеть запуск chrome

5. protractor = require(«./транспортир.conf»); переменная configbase = protractor.config; переменная path = require(‘путь’); переменная downloadsPath = path.resolve(__dirname, ‘downloads’); configbase.capabilities.browserName = «chrome»; configbase.capabilities.ChromeOptions = { аргументы: [‘-отключить-gpu’, ‘-отключить-на стороне браузера- навигация’,’—no-sandbox’], }; configbase.directconnect = true; exports.config = configbase;