Тесты транспортира случайным образом терпят неудачу в IE 11 при ожидании ExpectedCondition.presenceOf () - PullRequest
0 голосов
/ 14 января 2020

Я пишу тесты пользовательского интерфейса для не angular приложения и запускаю транспортир в IE11, и он случайным образом завершается с ошибкой

await browser.wait(protractor.ExpectedConditions.presenceOf(element(by.name('TOBACO_SCANNED_SERIAL'))),
        5000,
        "serial number input must be present");

Это событие не завершается с ошибкой после ожидания, оно просто сразу завершается с этим кодом. Я использую InternetExplorerDriver 32-разрядная версия 3.4.0 и транспортир 5.4.2.

Вот полная трассировка стека для ошибки

Stack:
    JavascriptError:  (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 254 milliseconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'CICD', ip: '192.168.0.4', os.name: 'Windows Server 2016', os.arch: 'x86', os.version: '10.0',
java.version: '1.8.0_231'
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=true, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUploadDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWindowFocus=false, initialBrowserUrl=http://localhost:48605/, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnabled=true,
version=11, platform=WINDOWS, unexpectedAlertBehaviour=accept}]
    Session ID: 197d9a98-25c5-4ab1-882f-e9c1ec8aa3e1
    *** Element info: {Using=css selector, value=*[name="TOBACO_SCANNED_SERIAL"]}
        at Object.checkLegacyResponse (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\error.js:546:15)
        at parseHttpResponse (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\http.js:509:13)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\http.js:441:30
        at runMicrotasks (<anonymous>)
        at processTicksAndRejections (internal/process/task_queues.js:93:5)
    From: Task: WebDriver.findElements(By(css selector, *[name="TOBACO_SCANNED_SERIAL"]))
        at thenableWebDriverProxy.schedule (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\webdriver.js:807:17)
        at thenableWebDriverProxy.findElements (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\webdriver.js:1048:19)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\protractor\built\element.js:159:44
        at ManagedPromise.invokeCallback_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:1376:14)
        at TaskQueue.execute_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:3084:14)
        at TaskQueue.executeNext_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:3067:27)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2927:27
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:668:7
    From: Task: <anonymous>
        at pollCondition (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2195:19)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2191:7
        at new ManagedPromise (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:1077:7)
        at ControlFlow.promise (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2505:12)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2190:22
        at TaskQueue.execute_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:3084:14)
        at TaskQueue.executeNext_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:3067:27)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2974:25
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:668:7
    From: Task: serial number input must be present
        at scheduleWait (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2188:20)
        at ControlFlow.wait (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2517:12)
        at thenableWebDriverProxy.wait (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\webdriver.js:934:29)
        at run (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\protractor\built\browser.js:59:33)
        at ProtractorBrowser.to.<computed> [as wait] (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\protractor\built\browser.js:67:16)
        at SerialNumbersPage.<anonymous> (C:\Users\EBiriukov\Programm\bls_2013\autotests\temp\src\page-object\pick\serial-numbers.po.js:22:40)
        at Generator.next (<anonymous>)
        at fulfilled (C:\Users\EBiriukov\Programm\bls_2013\autotests\temp\src\page-object\pick\serial-numbers.po.js:5:58)
    From: Task: Run it("Test serial") in control flow
        at UserContext.<anonymous> (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\jasminewd2\index.js:94:19)        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\jasminewd2\index.js:64:48
        at ControlFlow.emit (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\events.js:62:21)
        at ControlFlow.shutdown_ (C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2674:10)
        at C:\Users\EBiriukov\Programm\bls_2013\autotests\node_modules\selenium-webdriver\lib\promise.js:2599:53

Часть конфигурации

export let config: Config = {
    directConnect: false,
    onPrepare: async () => {
        configureReports();
        browser.ignoreSynchronization = true;
        await loginToTerminal();
      },
    onComplete: function() {
        jasmineOnComplite();
    },
    specs: [
        "src/test-cases/**/*.spec.js"
    ],
    capabilities: {
        'browserName' : 'internet explorer',
        'platform': 'ANY',
        'version': '11',
        "nativeEvents": false,
        'unexpectedAlertBehaviour': 'accept',
        'ignoreProtectedModeSettings': true,
        'enablePersistentHover': true,
        'disable-popup-blocking': true,
        'ignoreZoomSetting': true,
        'INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS': true
    },
    localSeleniumStandaloneOpts : {
        jvmArgs : ["-Dwebdriver.ie.driver=./node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer3.4.0.exe"]
    },
    jasmineNodeOpts: { defaultTimeoutInterval: 260000 },
    allScriptsTimeout: 110000,
    getPageTimeout: 110000,
}

Любой совет, как это исправить или хотя бы найти причину этой ошибки?

...