paint-brush
Как максимально эффективно использовать возможности драматурга после последних обновленийк@brightdata
1,911 чтения
1,911 чтения

Как максимально эффективно использовать возможности драматурга после последних обновлений

к Bright Data5m2023/12/17
Read on Terminal Reader

Слишком долго; Читать

Угадай, что? Microsoft только что выпустила новую версию Playwright, как по маслу! Отслеживание исправлений ошибок и изменений API может показаться постоянным занятием, а пропустить интересные функции — совсем несложно. Но не волнуйтесь, мы вас поддержим! Мы здесь, чтобы помочь вам оставаться в курсе событий, освоить новые трюки и поразить коллег своими звездными навыками! Готовы погрузиться? Пойдем!
featured image - Как максимально эффективно использовать возможности драматурга после последних обновлений
Bright Data HackerNoon profile picture
0-item
1-item
2-item
3-item
4-item


Угадай, что? Microsoft только что выпустила новую версиюPlaywright , как по маслу! Отслеживание исправлений ошибок и изменений API может показаться постоянным занятием, а пропустить интересные функции — совсем несложно. Но не волнуйтесь; мы тебя поддержим!


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


Последние обновления драматурга (v1.04)

Если вы хотите из первых рук узнать о последних новинках драматурга на некоторых замечательных примерах, зайдите на канал драматурга на YouTube и посмотрите ежемесячное видео «Что нового в драматурге»:

Пришло время изучить новейшие функции, представленные в 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()
  • Значение утверждения : убедитесь, что элемент выбора имеет определенное значение, добавив в тест инструкцию expect(locator).toHaveValue() .


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


Посмотрите эту новую функцию в действии на следующем GIF-изображении:


Инструмент генератора тестов PlaywrightTest


Это взаимодействие с генератором тестов создаст для вас следующий тест 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 линейка поддерживаемых браузеров пополнилась новыми версиями:

  • Хром 120.0.6099.28
  • Мозилла Фаерфокс 119.0
  • Вебкит 17.4


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

  • Гугл Хром 119

  • Microsoft Край 119


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

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

  • Образ Docker Playwright теперь поставляется с Node.js v20.


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

Как обновить драматурга

Теперь вы, должно быть, думаете: «Как мне заполучить эти фантастические новинки?» Ну и обновив Драматург до последней версии, друг мой!


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

npm install @playwright/test@latest

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

npx playwright install


Вуаля! Все готово, чтобы получить последние обновления драматурга!

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

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


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


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


  1. Это бесконечная игра в кошки-мышки: меры по борьбе с ботами развиваются, а завтрашний день превращает сегодняшние обходные пути в устаревшие новости.
  2. Даже при самых изящных конфигурациях браузера чрезмерные запросы с одного и того же IP-адреса все равно могут вызвать подозрительные взгляды с целевого сайта.
  3. Взаимодействия с пользователем, такие как отправка форм, могут потребовать решения CAPTCHA, которое не так уж просто автоматизировать!


Проблема не в самой библиотеке автоматизации браузера (Драматург великолепен! 🤘), а в том, что браузер находится под контролем. Решением мог бы стать настраиваемый браузер, который:


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


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


Последние мысли

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


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


До новых встреч, продолжайте свободно исследовать Интернет!