#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;