Тайм-аут транспортира / селена / жасмина, если менеджер веб-драйвера не запущен вручную - PullRequest
1 голос
/ 20 марта 2019

Мне очень трудно отследить эту проблему.

Окружающая среда:

  • 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');
    }    

};

1 Ответ

0 голосов
/ 20 марта 2019

Попробуйте добавить приведенный ниже в вашу конфигурацию

exports.config = {
    directConnect: true
}

Надеюсь, это решит вашу проблему.

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