Size: a a a

2020 February 04

BO

Boris Osipov in JS for testing
в какое место кода нужно ввернуть, чтобы точно работало в тракторе я хз.
источник

O

Olga in JS for testing
может быть например вот так:

(node:19144) UnhandledPromiseRejectionWarning: TimeoutError: Wait timed out after 31376ms
   at D:\ep-autoTests\node_modules\selenium-webdriver\lib\promise.js:2201:17
   at runMicrotasks (<anonymous>)
   at processTicksAndRejections (internal/process/task_queues.js:93:5)
(node:19144) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled
with .catch(). (rejection id: 8)
источник

BO

Boris Osipov in JS for testing
источник

BO

Boris Osipov in JS for testing
после этого люди серьезно трактор предлагают.
можно @xotabu4 спросить. мб есть еще трюки.
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
стектрейс вообще вот такой

(node:19144) UnhandledPromiseRejectionWarning: StaleElementReferenceError: stale element reference: element is not attached to the page document
 (Session info: chrome=79.0.3945.130)
 (Driver info: chromedriver=79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}),platform=Linux 4.15.0-66-generic x86_64)
   at Object.checkLegacyResponse (D:\ep-autoTests\node_modules\selenium-webdriver\lib\error.js:546:15)
   at parseHttpResponse (D:\ep-autoTests\node_modules\selenium-webdriver\lib\http.js:509:13)
   at D:\ep-autoTests\node_modules\selenium-webdriver\lib\http.js:441:30
   at runMicrotasks (<anonymous>)
   at processTicksAndRejections (internal/process/task_queues.js:93:5)Error
   at ElementArrayFinder.applyAction_ (D:\ep-autoTests\node_modules\protractor\built\element.js:459:27)
   at ElementArrayFinder.<computed> [as click] (D:\ep-autoTests\node_modules\protractor\built\element.js:91:29)
   at ElementFinder.<computed> [as click] (D:\ep-autoTests\node_modules\protractor\built\element.js:831:22)
   at CustomForms.backToFormsLinkClick (D:\ep-autoTests\pages\CustomForms.js:207:25)
   at UserContext.<anonymous> (D:\ep-autoTests\specs\customForms-spec.js:202:36)
   at runMicrotasks (<anonymous>)
   at processTicksAndRejections (internal/process/task_queues.js:93:5)
(node:19144) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled
with .catch(). (rejection id: 7)

вроде где-то мне встречалось объяснение, как сделать в протракторе нормальный стектрейс, чтобы было видно где в коде тестов оно возникает, но я не помню, где я его встречала и по каким словам его нагуглить ( (я как Витька Корнеев - "ничего у меня сегодня не получается, дурак я сегодня")
подозреваю что ты где-то идешь циклом по элементам и в процессе страница перерисовывается
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
стектрейс вообще вот такой

(node:19144) UnhandledPromiseRejectionWarning: StaleElementReferenceError: stale element reference: element is not attached to the page document
 (Session info: chrome=79.0.3945.130)
 (Driver info: chromedriver=79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}),platform=Linux 4.15.0-66-generic x86_64)
   at Object.checkLegacyResponse (D:\ep-autoTests\node_modules\selenium-webdriver\lib\error.js:546:15)
   at parseHttpResponse (D:\ep-autoTests\node_modules\selenium-webdriver\lib\http.js:509:13)
   at D:\ep-autoTests\node_modules\selenium-webdriver\lib\http.js:441:30
   at runMicrotasks (<anonymous>)
   at processTicksAndRejections (internal/process/task_queues.js:93:5)Error
   at ElementArrayFinder.applyAction_ (D:\ep-autoTests\node_modules\protractor\built\element.js:459:27)
   at ElementArrayFinder.<computed> [as click] (D:\ep-autoTests\node_modules\protractor\built\element.js:91:29)
   at ElementFinder.<computed> [as click] (D:\ep-autoTests\node_modules\protractor\built\element.js:831:22)
   at CustomForms.backToFormsLinkClick (D:\ep-autoTests\pages\CustomForms.js:207:25)
   at UserContext.<anonymous> (D:\ep-autoTests\specs\customForms-spec.js:202:36)
   at runMicrotasks (<anonymous>)
   at processTicksAndRejections (internal/process/task_queues.js:93:5)
(node:19144) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled
with .catch(). (rejection id: 7)

вроде где-то мне встречалось объяснение, как сделать в протракторе нормальный стектрейс, чтобы было видно где в коде тестов оно возникает, но я не помню, где я его встречала и по каким словам его нагуглить ( (я как Витька Корнеев - "ничего у меня сегодня не получается, дурак я сегодня")
at CustomForms.backToFormsLinkClick (D:\ep-autoTests\pages\CustomForms.js:207:25)
   at UserContext.<anonymous> (D:\ep-autoTests\specs\customForms-spec.js:202:36)
источник

O

Olga in JS for testing
Boris Osipov
после этого люди серьезно трактор предлагают.
можно @xotabu4 спросить. мб есть еще трюки.
будь проклят тот день, когда я сел за баранку этого пылесоса! (с) :)
источник

BO

Boris Osipov in JS for testing
Oleksandr Khotemskyi
at CustomForms.backToFormsLinkClick (D:\ep-autoTests\pages\CustomForms.js:207:25)
   at UserContext.<anonymous> (D:\ep-autoTests\specs\customForms-spec.js:202:36)
не Саш, я про https://t.me/js_for_testing/60817
источник

O

Olga in JS for testing
кстати да, там цикл
источник

OK

Oleksandr Khotemskyi in JS for testing
ой да, я даже в докладе про это говорил
источник

O

Olga in JS for testing
а в каком?? как называется доклад?
источник

OK

Oleksandr Khotemskyi in JS for testing
и у меня свой патч в проекте на это
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
а в каком?? как называется доклад?
источник

O

Olga in JS for testing
спасибо большое
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
а в каком?? как называется доклад?
там не про stale reference, а про ошибку wait timed out что она никакая в протракторе
источник

OK

Oleksandr Khotemskyi in JS for testing
и как пофиксить
источник

O

Olga in JS for testing
спасибо, попробую
источник

O

Olga in JS for testing
про stale это я уже задолбалась разгребать ошибки с промисами в зеленых тестах и глаз замылился... меа кулпа
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
про stale это я уже задолбалась разгребать ошибки с промисами в зеленых тестах и глаз замылился... меа кулпа
надо глянуть как ты итерируешься
источник

OK

Oleksandr Khotemskyi in JS for testing
Olga
про stale это я уже задолбалась разгребать ошибки с промисами в зеленых тестах и глаз замылился... меа кулпа
если вкратце почему летит:

const links = $$(‘a’) // getting all links

await links.map(async (link) => {
    await link.click() // clicking every link and asserting something.
    expect(blabla).toEqual(ololo)
    await browser.navigate().back() // going back to click on next link
})

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