В чем разница между протоколом WebDriver и DevTool
Как известно, протокол WebDriver предназначен для автоматизации тестирования. Но основные браузеры также предоставляют протокол DevTool. В некоторых случаях протокол DevTool может обеспечить более мощные взаимодействия и операции по сравнению с WebDriver.
У меня вопрос, почему есть два разных протокола и в чем основное различие между этими двумя протоколами? Есть ли какой-нибудь опыт отбора, которым можно поделиться для разработки проекта?
Заранее спасибо!
Ссылка:
DevTools
WebDriver:
2 ответа
WebDriver
WebDriver предоставляет нам хорошо разработанный объектно-ориентированный API, который может обеспечить улучшенную поддержку современных современных веб-приложений, созданных с помощью динамических веб-страниц. Короче говоря, WebDriver - это интерфейс удаленного управления, который позволяет нам анализировать и контролировать пользовательские агенты. Он предоставляет нам платформу и независимый от языка проводной протокол, а также позволяет внешним программам удаленно инструктировать поведение веб-браузеров.
Спецификация WebDriver
Спецификация WebDriver была опубликована Рабочей группой по тестированию браузера и инструментам в качестве черновика редактора. Проект редакции не подразумевает одобрения со стороны Членства W3C и может быть обновлен, заменен или отменен другими документами в любое время.
Протокол DevTools
Протокол инструментов разработчика используется различными браузерами, механизмами JavaScript и инструментами отладки для:
- Помогите веб-разработчикам с набором инструментов диагностики, которые хорошо работают в различных целях.
- Чтобы удовлетворить потребность в целевых адаптерах протокола devtools и упростить работу пользователей и разработчиков инструментов.
- Обеспечить независимую от поставщика платформу для облегчения сотрудничества и взаимного консенсуса между различными реализациями протоколов и заинтересованными клиентами.
- Сократите затраты на разработку, необходимые для создания любых других совместимых реализаций протоколов в соответствии с пользовательскими историями.
Вот некоторые из браузерных движков и браузеров, которые имеют встроенный протокол отладки:
- Chrome DevTools
- WebKit / Safari
- Node.js
- Firefox 1 ( в разработке)
- Edge 2 ([в разработке] (ссылка скоро будет обновлена))
Некоторые из адаптеров, которые выставляют общий протокол:
- https://github.com/Microsoft/edge-diagnostics-adapter - будет заменен собственной поддержкой (упомянутой выше).
- RemoteDebug iOS WebKit Adapter
Здесь вы можете найти список адаптеров в RemoteDebug - Protocol Adaptors
1. Обратите внимание, что DevTools Protocol
для Firefox находится в стадии разработки
2. Обратите внимание, что DevTools Protocol
для Edge - работа в прогрессе
Основное различие между протоколом WebDriver и протоколом DevTools заключается в том, что протоколу WebDriver необходим посредник, такой как драйвер браузера (например, chrome-driver), который является сервером, который находится между сценарием автоматизации и браузером, обеспечивающим управление браузером, но в случае протокола DevTools Скрипт автоматизации может напрямую взаимодействовать с браузером, работающим в режиме отладки, что упрощает автоматизацию без головы.
А драйвер Chrome внутренне использует протокол DevTools для управления браузером, поэтому, если мы используем протокол WebDriver, он, в свою очередь, будет использовать протокол Devtools для управления браузером.
Если кросс-браузерное тестирование является чем-то важным для нового инструмента тестирования, протокол DevTools сейчас может не подойти, так как еще нет стандарта, и он в основном находится в стадии разработки. В противном случае протокол DevTools будет отличным выбором, поскольку он дает больше контроля, например, перехватывает заголовок запроса, моделирует сеть и т. Д., А также упрощает автоматизированную автоматизацию.