WebDriver BiDi — будущее кроссбраузерной автоматизации

В нашей предыдущей статье мы рассмотрели существующие протоколы автоматизации, а именно WebDriver «Classic» и Chrome DevTools Protocol (CDP), а также их соответствующие преимущества и ограничения.

Откройте для себя WebDriver BiDi, будущее автоматизации браузера! Это новый стандартный протокол автоматизации браузера, который в настоящее время находится в стадии разработки и призван объединить лучшее из WebDriver «Classic» и CDP. WebDriver BiDi обещает двунаправленную связь, делая ее быстрой по умолчанию, и оснащен низкоуровневым контролем.

Веб-драйвер BiDi
Вебдрайвер «Классический» Протокол Chrome DevTools (CDP)
Лучшая кроссбраузерная поддержка Быстрый двунаправленный обмен сообщениями
Стандарт W3C Обеспечивает низкоуровневый контроль
Создан для тестирования

Идея WebDriver BiDi заключается в том, чтобы позволить вам писать тесты, используя любые ваши любимые инструменты, и автоматизировать их в любом браузере или драйвере, предоставляя вам полную гибкость.

Концепция WebDriver BiDi.
Концепция WebDriver BiDi

Стандартизация

Рабочая группа WebDriver BiDi включает в себя разнообразную группу поставщиков браузеров, проектов автоматизации браузеров с открытым исходным кодом и компаний, предлагающих решения для автоматизации браузеров. Это сотрудничество обеспечивает многообещающее будущее для автоматизации браузеров.

Рабочая группа WebDriver BiDi
Рабочая группа WebDriver BiDi

Работа в основном выполняется в этом репозитории GitHub . Ежемесячно проводятся встречи со всеми основными поставщиками браузеров, на которых сообщается о реальном прогрессе и обсуждаются спорные и неизвестные детали. Сквозная рабочая группа компании следит за тем, чтобы решения согласовывались со всеми заинтересованными сторонами.

Создание и внедрение нового протокола – немалый подвиг. Это требует согласованных усилий различных поставщиков, сотрудничающих и работающих вместе. Процесс включает в себя:

  • Спецификация : процесс запроса комментариев (RFC) для сбора отзывов о предложении.
  • Верификация : серия тестов, которые можно запускать на разных платформах и которые служат источником достоверности для всех реализаций.
  • Реализация : браузеры реализуют протоколы в соответствии со спецификацией и проходят проверочные тесты.

Проблемы

В этом разделе мы углубимся в проблемы реализации WebDriver BiDi, поскольку он стремится найти баланс между совместимостью, удобством использования и реализуемостью.

За пределами клона CDP: обеспечение кроссбраузерной совместимости

CDP с его элементами, специфичными для Chrome и DevTools, не может быть напрямую воспроизведен в спецификации WebDriver BiDi. Реализация CDP как есть была бы невозможна для других браузеров, что сделало бы спецификацию, которая просто документирует, как это сделать, бессмысленной.

Обеспечение низкой задержки

WebDriver BiDi должен быть спроектирован так, чтобы справляться с большими задержками без ущерба для производительности. В CDP задержка невелика, поскольку клиент и сервер почти всегда работают на одной и той же физической машине, но в WebDriver BiDi это не так. Таким образом, WebDriver BiDi должен минимизировать количество необходимых обменов между клиентом и сервером.

Приоритет эргономики в BiDi

Хотя от разработчиков не ожидается создания клиентов WebDriver BiDi с нуля, крайне важно избегать чрезмерного усложнения протокола. Чрезмерно сложный BiDi будет не только сложно реализовать, но и с ним будет сложно работать, что затруднит его внедрение и использование.

Обеспечение реализуемости BiDi

WebDriver BiDi должен быть реалистично реализован с учетом ограничений различных браузеров. Например, сохранение всех объектов JavaScript, когда-либо предоставляемых клиентам с помощью BiDi, может привести к утечкам памяти, а отсутствие каких-либо объектов может затруднить отладку и взаимодействие с JavaScript страницы. Очень важно найти баланс, который обеспечит эффективную автоматизацию браузера без ущерба для производительности.

Преодоление проблем

В этом разделе мы обсудим стратегии, используемые для решения проблем внедрения WebDriver BiDi.

Быстрое прототипирование

Решение проблемы реализуемости имеет решающее значение для успеха BiDi. Чтобы ускорить работу над спецификацией и тестированием, мы применили подход быстрого прототипирования с использованием NodeJS. Это не только позволяет нам экспериментировать с различными решениями, но и облегчает разработку тестов веб-платформы.

Проектируйте с учетом производительности

Это проектное решение обусловлено производительностью, поскольку в некоторых случаях задержка в WebDriver BiDi высока. Например, при получении идентификатора и значения объекта из браузера для WebDriver BiDi требуется только один возврат, а для CDP — два. Это связано с тем, что WebDriver BiDi может возвращать как идентификатор, так и значение в одном ответе (результат не должен быть сериализуемым в формате JSON), тогда как CDP должен возвращать их отдельно.

Акцент на тестах веб-платформы (WPT)

Тесты веб-платформы играют важную роль в работе BiDi. В настоящее время WPT охватывает WebDriver Classic и WebDriver BiDi и служит надежным справочником для всех реализаций. Эти тесты предназначены для запуска и передачи в различных реализациях, обеспечивая согласованное выполнение межбраузерного протокола, что жизненно важно для успеха WebDriver BiDi. Ознакомьтесь с последними результатами WPT на информационной панели .

Каков план и текущий прогресс?

Взгляните на дорожную карту WebDriver BiDi , чтобы понять направление проекта. Дорожная карта находится в стадии разработки и постоянно развивается.

Обратитесь к последним тестам веб-платформы , чтобы узнать о статусе реализации в браузерах, поскольку они служат источником достоверной информации.

Следите за основными этапами проекта , чтобы следить за его ходом.

Узнайте о достижениях 2023 года и будьте в курсе последних событий!

Поддержка WebDriver BiDi: чем вы можете помочь

Вы воодушевлены будущим автоматизации браузеров с помощью WebDriver BiDi? Вот как вы можете выразить свою поддержку:

  • Будьте одним из первых тестировщиков и пользователей , помогая формировать будущее WebDriver BiDi.
  • Распространить слово! Поделитесь проектом в социальных сетях, используя хэштег #WebDriverBiDi .
  • Попросите поддержки . Отправьте запрос на добавление функции или проверьте с помощью ваших любимых инструментов их планы по внедрению WebDriverBiDi.
  • Участвуйте в RFC , предоставляя отзывы об API.

Общие вопросы

Собирается ли WebDriver BiDi заменить протокол Chrome DevTools (CDP)?

Нет. Браузеры на базе Chromium будут продолжать использовать CDP для целей отладки, а WebDriver BiDi — это новая спецификация, предназначенная для удовлетворения потребностей тестирования с помощью более эргономичного API.

Поскольку Puppeteer использует CDP, означает ли это, что Puppeteer устареет?

Нет. Однако WebDriver BiDi позволит Puppeteer стать кросс-браузерным инструментом автоматизации.

Есть ли у вас публичная дорожная карта?

Да, посетите нашу дорожную карту на GitHub .

,

В нашей предыдущей статье мы рассмотрели существующие протоколы автоматизации, а именно WebDriver «Classic» и Chrome DevTools Protocol (CDP), а также их соответствующие преимущества и ограничения.

Откройте для себя WebDriver BiDi, будущее автоматизации браузера! Это новый стандартный протокол автоматизации браузера, который в настоящее время находится в стадии разработки и призван объединить лучшее из WebDriver «Classic» и CDP. WebDriver BiDi обещает двунаправленную связь, делая ее быстрой по умолчанию, и оснащен низкоуровневым контролем.

Веб-драйвер BiDi
Вебдрайвер «Классический» Протокол Chrome DevTools (CDP)
Лучшая кроссбраузерная поддержка Быстрый двунаправленный обмен сообщениями
стандарт W3C Обеспечивает низкоуровневый контроль
Создан для тестирования

Идея WebDriver BiDi заключается в том, чтобы позволить вам писать тесты, используя любые ваши любимые инструменты, и автоматизировать их в любом браузере или драйвере, предоставляя вам полную гибкость.

Концепция WebDriver BiDi.
Концепция WebDriver BiDi

Стандартизация

Рабочая группа WebDriver BiDi включает в себя разнообразную группу поставщиков браузеров, проектов автоматизации браузеров с открытым исходным кодом и компаний, предлагающих решения для автоматизации браузеров. Это сотрудничество обеспечивает многообещающее будущее для автоматизации браузеров.

Рабочая группа WebDriver BiDi
Рабочая группа WebDriver BiDi

Работа в основном выполняется в этом репозитории GitHub . Ежемесячно проводятся встречи со всеми основными поставщиками браузеров, на которых сообщается о реальном прогрессе и обсуждаются спорные и неизвестные детали. Сквозная рабочая группа компании следит за тем, чтобы решения согласовывались со всеми заинтересованными сторонами.

Создание и внедрение нового протокола – немалый подвиг. Это требует согласованных усилий различных поставщиков, сотрудничающих и работающих вместе. Процесс включает в себя:

  • Спецификация : процесс запроса комментариев (RFC) для сбора отзывов о предложении.
  • Верификация : серия тестов, которые можно запускать на разных платформах и которые служат источником достоверности для всех реализаций.
  • Реализация : браузеры реализуют протоколы в соответствии со спецификацией и проходят проверочные тесты.

Проблемы

В этом разделе мы углубимся в проблемы реализации WebDriver BiDi, поскольку он стремится найти баланс между совместимостью, удобством использования и реализуемостью.

За пределами клона CDP: обеспечение кроссбраузерной совместимости

CDP с его элементами, специфичными для Chrome и DevTools, не может быть напрямую воспроизведен в спецификации WebDriver BiDi. Реализация CDP как есть была бы невозможна для других браузеров, что сделало бы спецификацию, которая просто документирует, как это сделать, бессмысленной.

Обеспечение низкой задержки

WebDriver BiDi должен быть спроектирован так, чтобы справляться с большими задержками без ущерба для производительности. В CDP задержка невелика, поскольку клиент и сервер почти всегда работают на одной и той же физической машине, но в WebDriver BiDi это не так. Таким образом, WebDriver BiDi должен минимизировать количество необходимых обменов между клиентом и сервером.

Приоритет эргономики в BiDi

Хотя от разработчиков не ожидается создания клиентов WebDriver BiDi с нуля, крайне важно избегать чрезмерного усложнения протокола. Чрезмерно сложный BiDi будет не только сложно реализовать, но и с ним будет сложно работать, что затруднит его внедрение и использование.

Обеспечение реализуемости BiDi

WebDriver BiDi должен быть реалистично реализован с учетом ограничений различных браузеров. Например, сохранение всех объектов JavaScript, когда-либо предоставляемых клиентам с помощью BiDi, может привести к утечкам памяти, а отсутствие каких-либо объектов может затруднить отладку и взаимодействие с JavaScript страницы. Очень важно найти баланс, который обеспечит эффективную автоматизацию браузера без ущерба для производительности.

Преодоление проблем

В этом разделе мы обсудим стратегии, используемые для решения проблем внедрения WebDriver BiDi.

Быстрое прототипирование

Решение проблемы реализуемости имеет решающее значение для успеха BiDi. Чтобы ускорить работу над спецификацией и тестированием, мы применили подход быстрого прототипирования с использованием NodeJS. Это не только позволяет нам экспериментировать с различными решениями, но и облегчает разработку тестов веб-платформы.

Проектируйте с учетом производительности

Это проектное решение обусловлено производительностью, поскольку в некоторых случаях задержка в WebDriver BiDi высока. Например, при получении идентификатора и значения объекта из браузера для WebDriver BiDi требуется только один возврат, а для CDP — два. Это связано с тем, что WebDriver BiDi может возвращать как идентификатор, так и значение в одном ответе (результат не должен быть сериализуемым в формате JSON), тогда как CDP должен возвращать их отдельно.

Акцент на тестах веб-платформы (WPT)

Тесты веб-платформы играют важную роль в работе BiDi. В настоящее время WPT охватывает WebDriver Classic и WebDriver BiDi и служит надежным справочником для всех реализаций. Эти тесты предназначены для запуска и передачи в различных реализациях, обеспечивая согласованное выполнение межбраузерного протокола, что жизненно важно для успеха WebDriver BiDi. Ознакомьтесь с последними результатами WPT на информационной панели .

Каков план и текущий прогресс?

Взгляните на дорожную карту WebDriver BiDi , чтобы понять направление проекта. Дорожная карта находится в стадии разработки и постоянно развивается.

Обратитесь к последним тестам веб-платформы , чтобы узнать о статусе реализации в браузерах, поскольку они служат источником достоверной информации.

Следите за основными этапами проекта , чтобы следить за его ходом.

Узнайте о достижениях 2023 года и будьте в курсе последних событий!

Поддержка WebDriver BiDi: чем вы можете помочь

Вы воодушевлены будущим автоматизации браузеров с помощью WebDriver BiDi? Вот как вы можете выразить свою поддержку:

  • Будьте одним из первых тестировщиков и пользователей , помогая формировать будущее WebDriver BiDi.
  • Распространить слово! Поделитесь проектом в социальных сетях, используя хэштег #WebDriverBiDi .
  • Попросите поддержки . Отправьте запрос на добавление функции или проверьте с помощью ваших любимых инструментов их планы по внедрению WebDriverBiDi.
  • Участвуйте в RFC , предоставляя отзывы об API.

Общие вопросы

Собирается ли WebDriver BiDi заменить протокол Chrome DevTools (CDP)?

Нет. Браузеры на базе Chromium будут продолжать использовать CDP для целей отладки, а WebDriver BiDi — это новая спецификация, предназначенная для удовлетворения потребностей в тестировании с помощью более эргономичного API.

Поскольку Puppeteer использует CDP, означает ли это, что Puppeteer устареет?

Нет. Однако WebDriver BiDi позволит Puppeteer стать кросс-браузерным инструментом автоматизации.

Есть ли у вас публичная дорожная карта?

Да, посетите нашу дорожную карту на GitHub .