Разница между механизмами JsonWireProtocol и новыми стандартами в W3 C Living Document при использовании Selenium - PullRequest
2 голосов
/ 12 февраля 2020

Мне интересно, каковы различия между механизмами в JsonWireProtocol ( Статус: OBSOLETE ) и W3 C Живой документ от 31 декабря 2019 года ( новый стандарт ), когда используя Selenium для тестов пользовательского интерфейса. Я знаю, что Selenium использовал следующее: Когда мы создаем новый экземпляр драйвера (C#):

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
IWebDriver driver = new ChromeDriver();

, мы на самом деле делаем POST / session запрос к селену сервер. После этого через JsonWireProtocol и, например:

POST / session /: sessionId / element /: id / click , мы можем найти и щелкнуть определенный элемент или выполнить некоторые другие действия с другие запросы ...

Так что нового сейчас? Может кто-нибудь объяснить новый стандарт ?! Я буду очень рад, если кто-то сделает это всесторонне!

WebDriver W3 C Живой документ 31 декабря 2019 года

JsonWireProtocol

1 Ответ

1 голос
/ 12 февраля 2020

Протокол WebDriver Wire

Первоначальный проект Протокол WebDriver Wire представлял собой предложение о том, что все реализации WebDriver, которые будут взаимодействовать с браузером или сервером RemoteWebDriver, должны использовать общий провод протокол. Этот проводной протокол определил веб-службу RESTful с использованием JSON по HTTP.

В соответствии с первоначальным предложением и практикой некоторые из объектов JSON были следующими :

  • WebElement JSON Object : JSON представление WebElement для передачи по проводам. Этот объект будет иметь следующие свойства:

WebElement JSON Object

  • Возможности JSON Объект : Не весь сервер Реализации будут поддерживать каждую функцию WebDriver. Поэтому клиент и сервер должны использовать JSON объекты со свойствами, перечисленными ниже, при описании того, какие функции поддерживает сеанс.
  • Желаемые возможности : Возможности JSON Объект, отправленный клиентом описание возможностей, которыми должен обладать новый сеанс, созданный сервером. Любые пропущенные ключи неявно указывают, что соответствующая возможность не имеет значения. Больше на DesiredCapabilities .
  • Actual Capabilities : A Capabilities JSON Объект, возвращаемый сервером, описывающий, какие функции фактически поддерживает сеанс. Любые пропущенные ключи неявно указывают, что соответствующая возможность не поддерживается.
  • et c

WebDriver W3 C Спецификация

С введением WebDriver W3 C Спецификация были определены следующие стандарты:

  • Удаленные концы WebDriver должны предоставлять HTTP-совместимый проводной протокол, в котором конечные точки сопоставляются с различными командами .
  • Хотя этот стандарт определяет только протокол удаленного конца, он не предъявляет требований к реализации локальных концов.
  • Ожидается, что локальные окончания будут совместимы только в той степени, в которой они могут говорить. протокол удаленного конца; к их открытому пользовательскому API не предъявляются никакие требования.

Команды

Протокол WebDriver организован в команды. Каждый HTTP-запрос с методом и шаблоном, определенными в этой спецификации, представляет собой одну команду, и поэтому каждая команда создает один HTTP-ответ. В ответ на команду удаленный конец выполнит ряд действий, известных как шаги удаленного конца. Они обеспечивают последовательность действий, которые удаленный конец выполняет, когда он получает определенную команду.


Конечные точки

В приведенной ниже таблице конечных точек перечислены метод и шаблон URI для каждой команды узла конечной точки. и их текущая поддержка в ChromeDriver .

chromeScreenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...