Угадай, что? Microsoft только что выпустила новую версиюPlaywright , как по маслу! Отслеживание исправлений ошибок и изменений API может показаться постоянным занятием, а пропустить интересные функции — совсем несложно. Но не волнуйтесь; мы тебя поддержим!
Присоединяйтесь к нам в путешествии по последним обновлениям драматурга. Мы здесь, чтобы помочь вам оставаться в курсе событий, освоить новые трюки и поразить коллег своими звездными навыками! Готовы погрузиться? Пойдем!
Если вы хотите из первых рук узнать о последних новинках драматурга на некоторых замечательных примерах, зайдите на канал драматурга на YouTube и посмотрите ежемесячное видео «Что нового в драматурге»:
Пришло время изучить новейшие функции, представленные в Playwright, и узнать, как максимально эффективно использовать их 🔍
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()
.expect(locator).toContainText()
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 линейка поддерживаемых браузеров пополнилась новыми версиями:
Но это не все! Текущая версия Playwright также отлично зарекомендовала себя на следующих стабильных каналах:
Гугл Хром 119
Microsoft Край 119
Методы download.path()
и download.createReadStream()
теперь выдают ошибку, когда операция загрузки завершается неудачно или отменяется.
Образ Docker Playwright теперь поставляется с Node.js v20.
Не хотите пропустить новые обновления? Следите за страницей примечаний к выпуску драматурга!
Теперь вы, должно быть, думаете: «Как мне заполучить эти фантастические новинки?» Ну и обновив Драматург до последней версии, друг мой!
Просто запустите команду ниже:
npm install @playwright/test@latest
И забудьте обновить экземпляры браузера:
npx playwright install
Вуаля! Все готово, чтобы получить последние обновления драматурга!
Независимо от того, насколько актуальна ваша версия Playwright, большинство сайтов все равно смогут обнаруживать и блокировать ваши автоматизированные сценарии. Но как это вообще возможно? Что ж, безголовые браузеры, управляемые такими библиотеками, как Playwright, включают специальные конфигурации и настройки, которые антибот-решениями воспринимаются как красные флажки. Последствия? Немедленные блокировки или нежелательное появление CAPTCHA и других неприятных препятствий .
Теперь вы можете подумать: «А нельзя ли просто изменить настройки браузера, чтобы избежать этого?»
Не так быстро, детка! Это не лучшая идея, по крайней мере, по трем веским причинам:
Проблема не в самой библиотеке автоматизации браузера (Драматург великолепен! 🤘), а в том, что браузер находится под контролем. Решением мог бы стать настраиваемый браузер, который:
Хотите верьте, хотите нет, но это не какой-то далекий мираж. Это реально, и именно в этом суть решения Scraping Browser от Bright Data !
Драматург — рок-звезда библиотек автоматизации браузеров, и точно так же, как Санта-Клаус доставляет подарки в канун Рождества, Microsoft каждый месяц выпускает новое крупное обновление. Здесь вы увидели, как максимально эффективно использовать последние обновления Playwright, но давайте посмотрим правде в глаза: они не сделают вас волшебным образом невидимым для сайтов с передовыми технологиями обнаружения ботов.
Уклонитесь от этой пули с помощью решения Scraping Browser от Bright Data и присоединяйтесь к нашей миссии — сделать Интернет общедоступным местом для всех и везде, даже с помощью автоматизированных скриптов!
До новых встреч, продолжайте свободно исследовать Интернет!