Size: a a a

JavaScript testing

2021 November 01

BO

Boris Osipov in JavaScript testing
const video = page.video().saveAs('your path');
await page.close();
await video;
ты сначала закрываешь page, а потом авейтишь проvис видео, который получил из page.
источник

SK

Sergei Kramskoi in JavaScript testing
> It is safe to call this method while the video is still in progress, or after the page has closed. This method waits until the page is closed and the video is fully saved.
источник

SK

Sergei Kramskoi in JavaScript testing
or after the page has closed
источник

BO

Boris Osipov in JavaScript testing
а ну тогда ок)
источник

SK

Sergei Kramskoi in JavaScript testing
И более того, это код, который я скопировал из нашего проекта, где видео записывается.
Поэтому и хочу понять, что я упускаю :(
источник

BO

Boris Osipov in JavaScript testing
все ок. просто без доки, это выглядит не очень прозрачно
источник

P

Paul G in JavaScript testing
ага
источник

SK

Sergei Kramskoi in JavaScript testing
👌
источник

И

Инна in JavaScript testing
Вставила этот код после теста, теперь тест не завершается, хромиум остается открыт, в консоли IDE сообщение " Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't stopped in your tests."
источник

SK

Sergei Kramskoi in JavaScript testing
Видимо последний промис (с сохранением видео) не зарезолвился и тест просто упал по тайм-ауту. А есть код теста целиком глянуть?
источник

И

Инна in JavaScript testing
У меня есть beforeEach, где вызывается метод await run(); Run запускает браузер, контекст и открывает страницу

async function run() {
 browser = await playwright.chromium.launch({
     headless: false,
 });
 context = await browser.newContext({
   locale: ${defaultLang},
   recordVideo: {
     dir: '../../videos/',},
 });

 page = await context.newPage();
}
источник

И

Инна in JavaScript testing
И есть после теста в afterEach вызов метода stop, который сохраняет скриншот, в идеале видео и всё закрывает:
async function stop() {
 await page.screenshot({ path: 'endPoint.jpg' });
 const video = await page.video().saveAs('../../videos/');
 await page.close();
 await video;
 await context.close();
 await browser.close();
}
источник

SK

Sergei Kramskoi in JavaScript testing
Тут, как минимум, есть ошибка от меня. В строчке передачи параметра пути, в
await page.video().saveAs('../../videos/');

нужно указать путь сохранения, включая название файла и расширение:
await page.video().saveAs('../../videos/lol.webm');
источник

SK

Sergei Kramskoi in JavaScript testing
И еще, укажите абсолютный путь до каталога (это можно будет поправить потом, просто хочется убедиться что проблема не в пути - а кажется, что проблема в пути).
источник

SK

Sergei Kramskoi in JavaScript testing
Если же все таки захотите указать относительный путь, то это можно сделать через:
const path = require('path');
const videoDir = path.resolve(__dirname, '../../videos');
источник

И

Инна in JavaScript testing
пыталась заменить на абсолютный путь: const video = await page.video().saveAs('C://video/video.webm'); Результат тот же, тест не завершается, " asynchronous operations that weren't stopped in your tests"
источник

Р

Роман in JavaScript testing
А у wdio работает hover over in firefox?
источник
2021 November 02

ЛВ

Лёгкий Ветерок... in JavaScript testing
Подскажите, пожалуйста, можно ли присвоить псевдокласс hover сразу нескольким элементам на странице? и как?)
источник

P

Paul G in JavaScript testing
источник

P

Paul G in JavaScript testing
делаешь единый класс:hover к примеру и все элементы у которых есть этот класс - получат этот эффект
источник