Мне очень трудно отследить эту проблему.
Окружающая среда:
- Windows Server 2012 R2
- Хром: 73.0.3683.75
- Транспортир: v5.4.2
- WebDriver Manager: v12.1.1
- Chrome Webdriver: v2.46 или v73.0.3686.68
Workflow:
- Тестовый пакет запущен из TeamCity
- TeamCity запускает удаленный скрипт powershell для запуска транспортира в целевой системе
- скрипт в целевой системе запускается
protractor protractor.conf.js
До автоматического обновления Chrome до версии 73.xxx все работало правильно. Браузер запустится, и тесты будут запущены. После установки Chrome 73 Жасмин не сможет получить ответ от браузера.
Мы обновили веб-драйвер, чтобы соответствовать документированным поддерживаемым версиям с Chrome 73. Жасмин все еще не получила ответ. Есть ли способ устранить проблему, из-за которой мы получаем ошибку «истекло время ожидания при получении»?
Возможная подсказка: если вы запускаете транспортир в интерактивном режиме из командной строки, тесты работают.
Вот результаты наших тестов с ошибкой:
[21:10:51][Step 2/4] A- First test....
[21:10:51][Step 2/4] - Failed: timeout: Timed out receiving message from renderer: 600.000
[21:11:34][Step 2/4] protractor : (node:6836) UnhandledPromiseRejectionWarning: WebDriverError: No active session with ID
[21:11:34][Step 2/4] 0a7594e8b0c09966cd91bd158b4ba1e9
[21:11:34][Step 2/4] At C:\webenrollmentautomation\Automation\WebEnroll.ps1:58 char:3
[21:11:34][Step 2/4] + protractor protractor.conf.js --params.machine $machine 2>&1 ...
[21:11:34][Step 2/4] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[21:11:34][Step 2/4] + CategoryInfo : NotSpecified: ((node:6836) Unh...d91bd158b4ba1e9:String) [], RemoteException
[21:11:34][Step 2/4] + FullyQualifiedErrorId : NativeCommandError
[21:11:34][Step 2/4]
[21:11:34][Step 2/4] at Object.checkLegacyResponse
[21:11:34][Step 2/4] (C:\Users\identix\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:546:15)
[21:11:34][Step 2/4] at parseHttpResponse
[21:11:34][Step 2/4] (C:\Users\identix\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:509:13)
[21:11:34][Step 2/4] at doSend.then.response
[21:11:34][Step 2/4] (C:\Users\identix\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:441:30)
[21:11:34][Step 2/4] at <anonymous>
[21:11:34][Step 2/4] at process._tickCallback (internal/process/next_tick.js:189:7)
[21:11:34][Step 2/4] (node:6836) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing
Содержимое protractor.conf.js:
exports.config = {
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true, // Use colors in the command line report.
includeStackTrace: true,
defaultTimeoutInterval: 1440000
},
multiCapabilities: {
browserName: 'chrome',
chromeOptions: {
prefs: {
'profile.managed_default_content_settings.notifications': 2
}
},
ignoreProtectedModeSettings: true
},
// },
specs: [
// specs listed here
],
params: {
// params listed here
},
/
resultJsonOutputFile:'./my.json',
SELENIUM_PROMISE_MANAGER: false,
onPrepare: async() => {
//browser.manage().timeouts().implicitlyWait(5000);
browser.ignoreSynchronization = true;
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: 'testresults',
filePrefix: 'xmloutput'
}));
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true,
// displayDuration: true,
// displayFailed: true,
// displayPending: true,
// displaySuccessful: true
}
}));
},
afterLaunch: async() => {
var reporter = require('protractor-multicapabilities-htmlreporter');
reporter.generateHtmlReport('./my.json','Automation Results','./report.html');
}
};