Size: a a a

2019 October 25

M

Mike in JS for testing
ну я понимаю, что может отрендериться не успело, но насколько это реально, скриншот же долго делается
источник

BO

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

k

ko4ergins in JS for testing
То поменяй местами эти две строчки и проверь
expect(errorMsg).toContain('Login or password is incorrect');
await page.screenshot({path: 'example.png'});
источник

M

Mike in JS for testing
через обычный драйвер я такого никогда не видел) скрин всегда поздно делался, наоборот уже что-то исчезало)
источник

M

Mike in JS for testing
Та там на скриншоте иногда видно даже ЕЩЕ анимация нажатия на кнопку только (самая первая строчка того что я выше скинул)
источник

M

Mike in JS for testing
я то знаю, что через puppetter быстрее, но не настолько же=)
источник

M

Mike in JS for testing
с паузой видно конечно
источник

M

Mike in JS for testing
польза таких скринов сомнительная
источник

M

Mike in JS for testing
или я как-то не так юзаю)
источник

AV

Alex Vershinin in JS for testing
Mike
или я как-то не так юзаю)
Истина где-то рядом))
источник

OI

Oleksii Ihnatiuk in JS for testing
const errorMsg = await page.$eval('.notification.error', el => el.textContent);
источник

OI

Oleksii Ihnatiuk in JS for testing
вот это сделай без евала и будет счастье
источник

M

Mike in JS for testing
а поподробнее можно?)
источник

OI

Oleksii Ihnatiuk in JS for testing
Когда что-то идет не так я пытаюсь подумать. Ты делаешь проверку посредством document.querySelector механизма. Оно находит и проверяет в доме. Потом ты делаешь скриншот. Вопрос: почему ты ожидаешь что скриншот захватит ошибку на UI, когда ее там нет.
источник

OI

Oleksii Ihnatiuk in JS for testing
Поэтому я предлагаю, дождаться ошибку на UI. Взять текст, проверить его содержимое. Потом сделать скриншот.
источник

M

Mike in JS for testing
я это понимаю, но разве я не жду ошибку на UI?
источник

M

Mike in JS for testing
await page.waitForSelector('.notification.error', { visible: true });
источник

M

Mike in JS for testing
.error появляется только когда есть ошибка
источник

M

Mike in JS for testing
ну и судя по моему опыту, с обычным веб драйвером, там я тоже доставал аттрибуты через innerText, например, и все всегда ок было) такой кардинальной разницы не было
источник

N

Nikita Kryzhin in JS for testing
Mike
я это понимаю, но разве я не жду ошибку на UI?
page.waitForSelector('.notification.error', { visible: true });
будет ждать что элемент есть в DOM и что он не скрыт, но не факт что он виден пользовалю. Проверь через https://pptr.dev/#?product=Puppeteer&version=v1.20.0&show=api-elementhandleisintersectingviewport
источник