Вы совершенно правы в отношении Protocol и JsonWireProtocol . На этом этапе стоит упомянуть, что ранее все реализации WebDriver , которые связывались с браузером, или сервера RemoteWebDriver должны использовать общий проводной протокол. Этот проводной протокол определяет веб-службу RESTful , использующую JSON по HTTP.
Протокол JSON Wire - это абстрактная спецификация того, как поведение автоматизации, такое как нажатие или ввод текста, или все, что вы на самом деле хотите сделать со своим сценарием автоматизации, сопоставляется с запросами и ответами на селен, или приложение, или HTTP. Протокол будет предполагать, что API WebDriver был «сплющен», но ожидается, что клиентские реализации будут использовать более объектно-ориентированный подход, как продемонстрировано в существующем Java API. Проводной протокол реализован в парах запрос / ответ «команды» и «ответы».
JSON (JavaScript Object Notation) - это легкий формат для обмена данными между клиентом и сервером. Приложения используют объекты JSON для отправки и получения данных между собой в веб-мире. Структура данных JSON является отраслевым стандартом и может использоваться для отправки и получения данных в виде пара ключ-значение . Некоторые люди говорят, что это очень хорошая альтернатива для XML . Мы можем сохранить файлы JSON как расширение .json.
Как выглядит JSON?
Простой файл json выглядит следующим образом, и существует множество онлайн-редакторов , которые можно использовать для редактирования и проверки структуры JSON.
{
"Student":{
"FirstName":"Pawan",
"LastName":"Garia",
"IdNumber":"12345",
"City" : "New Delhi",
"EmailID" : "email@gmail.com" }
}
Почему JSON Wire Protocol был использован в первую очередь?
Для реализации клиент-серверной архитектуры, которая может дать нам следующие преимущества.
- Вы пишете тест на любом языке программирования.
- Вы можете выполнить или запустить тестирование в облачных сервисах, таких как SauceLabs, BrowserStack или Selenium Grid.
- Вы не обязаны запускать тестирование только на локальном компьютере.
- Различные драйверы (FirefoxDriver, ChromeDriver) могут быть созданы для браузеров и для отдельной реализации с использованием одних и тех же стандартов.
Таким образом, клиент-серверная реализация заранее требует стандартного набора спецификаций, чтобы сервер и клиент были синхронизированы друг с другом в отношении того, что поступает и происходит по запросу и ответу. Это что-то вроде языка общения друг с другом. Таким образом, нам нужна общая спецификация для решения такого рода требований, и решение было HTTP.
Почему HTTP является решением?
HTTP является стандартом для сети и может служить хорошей основой для спецификации. Каждый язык программирования имеет хорошие библиотеки HTTP, которые можно использовать для создания клиента и сервера для запросов и ответных вызовов.
Как протокол JSON Wire работал с HTTP?
HTTP-запрос и ответ обычно делаются из запросов GET и POST, что выходит за рамки этого обсуждения.
Текущий статус
С точки зрения Selenium , Протокол JSON Wire устарел, и WebDriver W3C Living Document является новой реализацией.