В Puppeteer появилась поддержка Firefox: что это значит для разработчиков?

Новости

Теперь QA и некоторе разработчики не будут ограничены в тестировании лишь браузером Chrome

363 открытий8К показов
В Puppeteer появилась поддержка Firefox: что это значит для разработчиков?

В Firefox 23 появилась долгожданная многими поддержка библиотеки автоматизации браузера Puppeteer.

Это нововведение значительно расширяет возможности для разработчиков, позволяя проводить автоматизацию и end-to-end тестирование как в Chrome, так и в Firefox.

Как начать использовать Puppeteer с Firefox

Для начала работы достаточно указать Firefox в настройках Puppeteer:

			import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  browser: "firefox"
});

const page = await browser.newPage();
// ...
await browser.close();

		

Puppeteer автоматически скачивает и запускает последнюю стабильную версию Firefox, обеспечивая тот же опыт, что и при использовании Chrome.

Ключевые возможности

Сбор логов консоли: Puppeteer позволяет отслеживать сообщения консоли, что полезно для выявления ошибок на странице.

			page.on('console', msg => {
  console.log(`[console] ${msg.type()}: ${msg.text()}`);
});

		

Эмуляция устройств: Для тестирования адаптивного интерфейса можно настроить эмуляцию различных устройств, как, например, Pixel 5.

			const device = puppeteer.KnownDevices["Pixel 5"];
await page.emulate(device);

		

Перехват сетевых запросов: Puppeteer позволяет перехватывать и изменять сетевые запросы, что полезно для тестирования без обращения к сторонним сервисам.

			await page.setRequestInterception(true);
page.on("request", request => {
  if (request.url().includes(".woff2")) {
    request.abort();
  } else {
    request.continue();
  }
});

		

Предзагрузка скриптов: В Puppeteer можно задать скрипты, которые будут выполняться до загрузки страницы, что помогает избежать гонок данных.

Технический фон

Поддержка Firefox в Puppeteer основана на протоколе WebDriver BiDi, который стандартизируется в W3C и поддерживается как в Gecko, так и в Chromium. Это значительно упрощает поддержку различных браузеров в будущем.

При этом уже в конце 2024 года поддержка экспериментального CDP в Firefox будет прекращена. Разработчикам рекомендуется переходить на WebDriver BiDi.

Что дальше?

Хотя Firefox теперь официально поддерживается в Puppeteer, остаются некоторые API, которые ещё не реализованы. Команда Puppeteer активно работает над их внедрением и призывает разработчиков делиться своим опытом и пожеланиями.

Если вы столкнулись с проблемами при использовании Puppeteer с Firefox, сообщите об этом через соответствующие каналы, чтобы команда могла учесть ваши отзывы при планировании дальнейших работ.

Следите за новыми постами
Следите за новыми постами по любимым темам
363 открытий8К показов