В чем заключается функциональность селена для управления браузером? - PullRequest
0 голосов
/ 02 февраля 2019

В чем заключается функциональность Selenium?

Я где-то читал, что языковая привязка или API предоставляет связующий код для использования Selenium в Java.

Код склеивания или код привязки: код, который соединяет несовместимые программные компоненты.

Джейсон Хаггингс написал JavaScriptTestRunner для управления браузером.Функциональность для управления браузером находится в JavaScriptTestRunner.Это страдает от политики того же происхождения.Пол Хаммант создал HTTP-прокси для обхода политики одного и того же происхождения.Это открыло двери для написания тестов на нескольких языках.Нам предоставляется API для написания тестов.

Затем создается WebDriver.WebDriver и RC объединены в Selenium 2.

Куда делись функциональные возможности для управления браузером?

  • Внутри API?
  • Внутри драйвера браузера?

Почему API называется клеевым кодом или кодом привязки?Что это связывает?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Код клея

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


JavaScriptTestRunner

Джейсон Хаггинс во время тестирования внутреннего приложения в ThoughtWorks сократилвремя, которое требовалось, чтобы вручную проходить одни и те же тесты с каждым внесенным им изменением, создавая библиотеку Javascript , которая могла бы управлять взаимодействием с веб-страницей, что позволяло ему автоматически перезапускать тесты для нескольких браузеров.Он назвал эту программу как JavaScriptTestRunner .Позже он сделал JavaScriptTestRunner с открытым исходным кодом .Эта библиотека в итоге стала Selenium Core , которая лежит в основе всех функций Selenium Remote Control (RC) и Selenium IDE .

К сожалению, для работы в рамках Одинаковой политики происхождения , Selenium Core необходимо поместить в то же начало, что и Тестируемое приложение (AUT).Поэтому другой инженер ThoughtWork, Пол Хаммант, создал сервер, который будет действовать как HTTP-прокси , маскируя AUT под вымышленным URL, встраивая Selenium Core и набориспытаний и доставки, как если бы они пришли из одного и того же происхождения.Эта система стала известна как Selenium Remote Control (Selenium RC) или Selenium 1 .


Зачем использовать HTTP-прокси

Опять же, когда веб-платформы становились все более сложными и мощными, ограничения изолированной среды Javascript для веб-браузеров все больше ограничивали эффективность Selenium Core .Саймону потребовался инструмент тестирования, который напрямую взаимодействовал с браузером, используя «нативный» метод для браузера и операционной системы, таким образом, избегая ограничений среды Javascript в изолированной среде.Это было, когда WebDriver и Selenium RC были объединены в Selenium 2 .Все реализации WebDriver , которые взаимодействуют с веб-браузерами, начали использовать общий проводной протокол.Этот проводной протокол определил веб-службу RESTful с использованием JSON по HTTP .


Заключение

Короче говоря, функциональность для управления браузером всегда была в библиотеке Javascript , которая обеспечивала взаимодействие с веб-страницей, которая была частью JavaScriptTestRunner и более поздних версий Selenium Core.

В соответствии с диаграммой ниже в отношении различных классов / интерфейсов функциональность для управления браузером обеспечивается с помощью selenium-api

Selenium_Maven_Dependencies

0 голосов
/ 02 февраля 2019

Sel e nium В общем использовании этого термина это библиотека - коллекция кода, организованная в модули и пакеты.В этой форме это клиент WebDriver - он может взаимодействовать с сервером такого типа , следуя протоколу WebDriver;что позволяет программисту управлять браузером.

Куда делись функциональные возможности для управления браузером?

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

Почему API называется клейким кодом или кодом привязки?Что это связывает?

При программировании связывание - это унифицированный / или четко определенный API библиотеки, который связывает код нижнего уровня (другие программы или ОС) или протоколы - WebDriver в этомдело, до понятий более высокого уровня - ваш код. Википедия на помощь, с более подробной информацией .

...