in

Как максимально использовать Playwright после последних обновлений

Microsoft только что выпустила новую версию Playwright как по маслу! Следить за исправлениями ошибок и изменениями API может показаться работой на полную ставку

Упустить интересные функции совсем несложно. Но не волнуйтесь; мы вас прикроем!

Присоединяйтесь к нам в путешествии по последним обновлениям Playwright. Мы здесь, чтобы помочь вам оставаться в курсе событий, освоить несколько новых приемов и поразить коллег своими выдающимися навыками! Готовы погрузиться в работу? Поехали!

Последние обновления Playwright (v1.04)

Если вам не терпится из первых рук ознакомиться с последними обновлениями Playwright на нескольких потрясающих примерах, зайдите на YouTube-канал Playwright и посмотрите ежемесячное видео “Что нового в Playwright”:

Время изучить последние функции, представленные в Playwright, и посмотреть, как извлечь из них максимальную пользу

Новые API

  • FirefoxUserPrefs поле добавлено к options объектному аргументу browserType.launchPersistentContext(userDataDir, options). Этот метод запускает браузер, используя постоянное хранилище, расположенное по адресу userDataDir, и возвращает экземпляр контекста браузера. firefoxUserPrefs` – это объект, содержащий настройки пользователя Firefox, указанные на about:config.
  • reason поле добавлено к options объектному аргументу методов page.close(options)browserContext.close(options) и browser.close(options)reason это строка, содержащая сообщение об ошибке, сообщаемое всеми операциями, прерванными в результате close() вызова.

Хотя firefoxUserPrefs предназначено специально для пользователей Firefox, нуждающихся в пользовательских конфигурациях, поле reason имеет гораздо более общее назначение. Используйте его, как показано во фрагменте ниже:

await browser.close({
    reason: "Scraping process completed!"
})

Все незавершенные операции, прерванные browser.close(), теперь будут выдавать ошибку JavaScript с сообщением “Процесс очистки завершен!”

Как использовать эту функцию? Представьте, что ваша целевая страница находится в процессе выполнения важной задачи — скажем, в ожидании получения некоторых данных. Внезапно появляется неожиданная ошибка, и вы сталкиваетесь с необходимостью корректно закрыть браузер.

Без reason вы остались бы в неведении о том, были ли освобождены ресурсы для текущей задачи и почему операция была прервана. Плохо не знать, что происходит, особенно когда перед вами стоит задача проверить причину ошибки в журналах скрипта автоматической очистки веб-страниц. Вот тут-то вам и приходит на помощь поле “причина”, избавляя вас от нескольких дней кропотливого расследования.

Потрясающе, это введение в API значительно упрощает отладку!

Новая функциональность для инструмента генератора тестов

В инструменте Playwright Test Generator,предназначенном для автоматического создания тестов при выполнении действий в браузере, теперь есть следующие кнопки:

  • Обеспечить видимость: убедитесь, что выбранный элемент виден, сгенерировав expect(locator).toBeVisible() инструкцию.
  • Утвердить текст: убедитесь, что выбранный HTML-элемент содержит определенный текст с помощью expect(locator).toContainText() инструкции
  • Утвердить значение: Проверьте, имеет ли элемент select определенное значение, добавив expect(locator).toHaveValue() инструкцию к вашему тесту.

Представьте это: вы работаете над сложной задачей, такой как создание веб-скребка для динамической веб-страницы. Предположим, вам нужно убедиться, что некоторые элементы на странице видны и содержат определенный текст или значения. Это потребует некоторой сложной логики. Но подождите — благодаря этому свежему обновлению все сводится к нескольким щелчкам в инструменте генератора тестов!

Смотрите эту новую функцию в действии на следующем GIF:

 

Это взаимодействие с генератором тестов создаст для вас следующий тест TypeScript:
import { test, expect } from '@playwright/test';
   test('test', async ({ page }) => {
   await page.goto('https://playwright.dev/');
   await expect(page.getByRole('banner')).toContainText('Get started');
   });

✨ Довольно волшебно, не правда ли? ✨

Обновленные версии браузеров

В соответствии с великой традицией крупных обновлений Playwright линейка поддерживаемых браузеров была обновлена новыми версиями:

  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

Но это еще не все! Текущая версия Playwright также отлично зарекомендовала себя на следующих стабильных каналах:

  • Google Chrome 119
  • Microsoft Edge 119

Другие незначительные изменения

  • Методы download.path() и download.createReadStream() теперь выдают ошибку, когда операция загрузки завершается неудачно или отменяется.
  • Изображение Playwright docker теперь поставляется с Node.js v20.

Не хотите пропустить ни одного нового обновления? Следите за страницей с примечаниями к выпуску Playwright!

Как обновить Playwright

Сейчас вы, должно быть, думаете: “Как мне заполучить в свои руки эти фантастические новые дополнения?” Что ж, обновив Playwright до последней версии, мой друг!

Просто запустите команду ниже:

npm install @playwright/test@latest

И забыть обновить экземпляры браузера с помощью:

npx playwright install

Voilà! Вы готовы получить в свои руки последние обновления Playwright!

Новый Playwright, те же старые проблемы…

Независимо от того, насколько актуальна ваша версия Playwright, большинство сайтов по-прежнему смогут обнаруживать и блокировать ваши автоматические скрипты. Но как это вообще возможно? Что ж, безголовые браузеры, управляемые библиотеками, такими как Playwright, требуют специальных конфигураций и настроек, которые решения по борьбе с ботами рассматривают как красные флажки. Следствие? Немедленные блокировки или нежелательное появление CAPTCHA и других досадных препятствий.

Сейчас вы можете подумать: “А нельзя ли мне просто настроить настройки своего браузера, чтобы избежать этого?”

Не так быстро, малыш! Это не лучшая идея по крайней мере по трем веским причинам:

  1. Это бесконечная игра в кошки-мышки – меры по борьбе с ботами развиваются, и к завтрашнему дню сегодняшнее решение станет новостью.
  2. Даже при самых сложных конфигурациях браузера чрезмерное количество запросов с одного и того же IP-адреса может вызвать подозрительные взгляды на целевом сайте.
  3. Для взаимодействия с пользователем, например, при отправке форм, может потребоваться поиск КАПЧИ, автоматизировать который – это не прогулка в парке!

Проблема не в самой библиотеке автоматизации браузера (Playwright потрясающий!), а скорее в контролируемом браузере. Решением мог бы стать настраиваемый браузер, который:

  • Работает в режиме headed, как обычный браузер, чтобы избежать обнаружения бота.
  • Может легко масштабироваться в облако, чтобы сэкономить ваше время и деньги при управлении инфраструктурой.
  • Обеспечивает сменные IP-адреса, поддерживаемые одной из самых широких и надежных прокси-сетей на рынке
  • Может автоматически управлять поиском капчи, отпечатков пальцев в браузере, настройкой файлов cookie и заголовков, а также автоматическими повторными попытками для достижения максимальной эффективности.
  • Интегрируется с самыми популярными библиотеками автоматизации браузера, такими как Playwright, Selenium и Puppeteer

Хотите верьте, хотите нет, но это не какой-то далекий мираж. Это реально, и это именно то, о чем решение Bright Data для очистки браузера!

Заключительные мысли

Playwright – рок-звезда библиотек автоматизации браузера, и точно так же, как Санта-Клаус доставляет подарки в канун Рождества, Microsoft ежемесячно выпускает новое крупное обновление. Здесь вы увидели, как максимально использовать последние обновления Playwright, но давайте посмотрим правде в глаза: они волшебным образом не сделают вас невидимыми для сайтов с передовыми технологиями обнаружения ботов.

Увернитесь от этой ошибки с помощью браузерного решения Scrap от Bright Data и присоединяйтесь к нашей миссии – сделать Интернет общественным местом для всех, везде, даже с помощью автоматизированных скриптов!

До следующего раза продолжайте свободно исследовать Интернет!

Автор истории Bright Data @brightdata

What do you think?

Начинающий

Written by Николай

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

GIPHY App Key not set. Please check settings