Мы пишем тесты транспортира на Typescript. Поскольку вызовы селена должны быть синхронными, почти каждая строка в тесте начинается с "await":
var option = await element(by.cssContainingText('mat-option .mat-option-text', text));
await browser.wait(protractor.ExpectedConditions.elementToBeClickable(option), 10000);
await option.click();
Когда тест не проходит - ОЧЕНЬ трудно понять, где именно тест не прошел. Я понимаю, что TS переносится в JavaScript, но в файлах. js также нет полезной информации, за исключением последнего файла / метода, который не удался. Например, если тест вызывает checkbox.set () 20 раз - как я могу узнать, какой из вызовов завершился неудачно?
Единственная полезная информация из трассировки стека ниже - это следующая строка:
at Function.<anonymous> (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\src\utils\combobox-service.ts:15:23)
Rest из. js строк - это браузер. js, обещание. js, et c, которые совершенно не помогают. Вот пример трассировки стека из нашего теста:
Failures:
1) Gui Tests 177699 - Full Flow - With Import - T600MMSR
Message:
Failed: Wait timed out after 10002ms
Stack:
TimeoutError: Wait timed out after 10002ms
at D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2201:17
at ManagedPromise.invokeCallback_ (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1376:14)
at TaskQueue.execute_ (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3084:14)
at TaskQueue.executeNext_ (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:3067:27)
at D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2927:27
at D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:668:7
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
From: Task: <anonymous wait>
at scheduleWait (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2188:20)
at ControlFlow.wait (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2517:12)
at Driver.wait (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:934:29)
at run (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\built\browser.js:59:33)
at ProtractorBrowser.to.<computed> [as wait] (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\built\browser.js:67:16)
at Function.<anonymous> (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\src\utils\combobox-service.ts:15:23)
at Generator.next (<anonymous>)
at fulfilled (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\out_files\src\utils\combobox-service.js:4:58)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
From: Task: Run fit("177699 - Full Flow - With Import - T600MMSR") in control flow
at UserContext.<anonymous> (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\jasminewd2\index.js:94:19)
at D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\jasminewd2\index.js:64:48
at ControlFlow.emit (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\events.js:62:21)
at ControlFlow.shutdown_ (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2674:10)
at D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2599:53
From asynchronous test:
Error
at Suite.<anonymous> (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\src\tests\guiTests.ts:1126:5)
at Object.<anonymous> (D:\Source\Fm\pmc\main\web\Automation\NovaFitAutomation\src\tests\guiTests.ts:847:1)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)