Используйте WebDriver для автоматизации Microsoft Edge
WebDriver позволяет разработчикам автоматизировать Microsoft Edge, имитируя взаимодействие пользователей. Тесты и имитации WebDriver отличаются от тестов подразделений JavaScript следующими способами:
Связь между WebDriver и другим программным обеспечением
Чтобы автоматизировать Microsoft Edge webDriver для имитации взаимодействия с пользователем, необходимо три компонента:
Функциональное отношение между этими компонентами следующим образом:
| Технология | Роль |
|---|---|
| WebDriver | Стандарт W3C для протокола провода, нейтрального от платформы и языка. Этот протокол позволяет вне процесса программам удаленно инструктировать поведение веб-браузеров. |
| Драйвер Microsoft Edge | Реализация протокола WebDriver корпорацией Майкрософт специально для Microsoft Edge. Тестовые авторы пишут тесты с использованием команд WebDriver, Microsoft Edge драйвер получает. Microsoft Edge драйвер отвечает за передачу этой команды в браузер. |
| Рамки тестирования WebDriver | Авторы тестирования используют рамки тестирования для записи конечных тестов и автоматизации браузеров. Предоставляет языковой интерфейс, который преобразует код в команды, Microsoft Edge драйвер выполняется в Microsoft Edge. Платформы тестирования WebDriver существуют для всех основных платформ и языков. Одной из таких структур является Selenium. |
| Драйвер Internet Explorer | Реализация протокола WebDriver специально для Internet Explorer. Чтобы выполнить устаревшие конечные тесты для Internet Explorer, рекомендуется использовать драйвер Internet Explorer. |
В следующих разделах описано, как начать работу с WebDriver для Microsoft Edge.
Скачать Microsoft Edge
Чтобы начать автоматизацию тестов, убедитесь, что устанавливаемая версия WebDriver соответствует версии браузера следующим образом:
Перейдите edge://settings/help к и обратите внимание на свою версию Microsoft Edge.
В разделе Получить последнюю версию страницы щелкните платформу в канале, которая соответствует номеру версии Microsoft Edge.
После завершения загрузки извлеките msedgedriver исполняемый файл в предпочтительное расположение. Добавьте папку, в которой исполнитель находится в переменной PATH среды.
Выбор основы тестирования WebDriver
После загрузки Microsoft Edge драйвера последним компонентом, который необходимо скачать, является база тестирования WebDriver. Тестовые авторы используют тестовые рамки WebDriver для записи конечных тестов и автоматизации браузеров. Фреймворк предоставляет языковой интерфейс, который переводит код (например, Python, Java, C#, Ruby или JavaScript) в команды, Microsoft Edge Driver выполняется в Microsoft Edge. Платформы тестирования WebDriver существуют для всех основных платформ и языков.
В этой статье указаны инструкции по использованию фреймворка Selenium, но вы можете использовать любую библиотеку, рамки и язык программирования, который поддерживает WebDriver. Чтобы выполнить те же задачи с помощью базы тестирования WebDriver, помимо Selenium, обратитесь к официальной документации по вашему выбору.
Если вы используете selenium, Microsoft Edge рекомендует selenium 4 или более поздний, так как эта версия selenium поддерживает Microsoft Edge. Однако вы можете управлять Microsoft Edge во всех старых версиях selenium, включая Selenium 3.
Использование selenium 4
Платформа тестирования Selenium WebDriver может использоваться на любой платформе и доступна для Java, Python, C#, Ruby и JavaScript.
Selenium 4 имеет встроенную поддержку Microsoft Edge. Чтобы установить selenium 4, см. в рублях Установка библиотек selenium.
Если вы используете Selenium 4 и получите эту ошибку, удалите из проекта и убедитесь, что вы используете официальные и классы из Microsoft.Edge.SeleniumTools EdgeOptions пространства EdgeDriver OpenQA.Selenium.Edge имен.
Использование selenium 3
Если вы уже используете Selenium 3,возможно, у вас есть существующие тесты браузера и вы хотите добавить покрытие для Microsoft Edge без изменения версии Selenium. Чтобы использовать Selenium 3 для записи автоматических тестов для устаревших edgeHTML и Microsoft Edge, установите пакет Selenium Tools для Microsoft Edge для использования обновленного драйвера. Классы и классы, включенные в инструменты, полностью совместимы со встроенными эквивалентами EdgeDriver EdgeDriverService в Selenium 4.
Если вы используете selenium 3, используйте следующие действия, чтобы добавить в проект средства selenium для Microsoft Edge и Selenium 3.
Если в проекте Java используется Maven, скопируйте и вклейте в файл следующую зависимость, чтобы добавить pom.xml msedge-selenium-tools-java.
Пакет Java также доступен для скачивания непосредственно на странице Selenium Tools for Microsoft Edge Releases.
Автоматизация Microsoft Edge с помощью WebDriver
Чтобы автоматизировать браузер с помощью WebDriver, сначала необходимо запустить сеанс WebDriver с помощью предпочтительной системы тестирования WebDriver. Сеанс — это один запущенный экземпляр браузера, управляемый с помощью команд WebDriver. Запустите сеанс WebDriver, чтобы запустить новый экземпляр браузера. Экземпляр запущенного браузера остается открытым до закрытия сеанса WebDriver.
В следующем контенте вы можете использовать Selenium для запуска сеанса WebDriver с помощью Microsoft Edge. Эти примеры можно запустить с помощью selenium 3 или 4. Чтобы использовать WebDriver с selenium 3, необходимо установить Microsoft Edge средства selenium.
В этой статье указаны инструкции по использованию фреймворка Selenium, но вы можете использовать любую библиотеку, рамки и язык программирования, который поддерживает WebDriver. Чтобы выполнить те же задачи с помощью другой структуры, проконсультируйтесь с документацией по вашему выбору.
Автоматизация Microsoft Edge
Если ваш ИТ-администратор задает политику DeveloperToolsAvailability, Microsoft Edge драйверу будет заблокировано управление Microsoft Edge, так как водитель использует Microsoft Edge 2 DevTools. Убедитесь, что политика developerToolsAvailability настроена на автоматизацию 0 1 Microsoft Edge.
Выбор отдельных бинарей браузера (Chromium-only)
Сеанс WebDriver можно запустить с помощью определенных Microsoft Edge разных серверов. Например, можно выполнить тесты с Microsoft Edge каналов предварительного просмотра, таких как Microsoft Edge Beta.
Настройка службы Microsoft Edge драйверов
При создании экземпляра класса класс создает и запускает соответствующий класс для устаревших EdgeOptions EdgeDriver EdgeDriverService edgeHTML или Microsoft Edge (Chromium).
Если вы хотите создать метод, используйте метод для создания настраиваемого EdgeDriverService CreateChromiumService() для Microsoft Edge. Метод CreateChromiumService() полезен при добавлении настроек. Например, в следующем коде начинается подробный выход журнала:
Вам не нужно предоставлять объект при проходе EdgeOptions EdgeDriverService в EdgeDriver экземпляр. Класс использует параметры по умолчанию для устаревших edgeHTML или Microsoft Edge (Chromium), основанных на EdgeDriver предоставляемой вами службе. Однако, если вы хотите предоставить как классы, так и классы, убедитесь, что оба настроены для одной и той же версии EdgeDriverService EdgeOptions Microsoft Edge. Например, предположим, что вы используете устаревший класс EdgeHTML по умолчанию, но используете Microsoft Edge EdgeDriverService (Chromium) свойства EdgeOptions в классе. Класс EdgeDriver будет бросать ошибку, чтобы предотвратить использование различных версий Microsoft Edge.
Используйте метод createDefaultService() для создания EdgeDriverService настраиваемого для Microsoft Edge. Используйте свойства системы Java для настройки служб драйверов в Java. Например, следующий код использует свойство «webdriver.edge.verboseLogging» для включаемой многословной выходной записи журнала:
При использовании JavaScript создайте и настройте Service ServiceBuilder класс. Необязательно, вы можете передать объект объекту, который запускает Service Driver (и останавливает) службу для вас. Чтобы настроить Service метод, запустите другой метод в ServiceBuilder классе перед build() использованием метода. Затем service передай параметр в Driver.createSession() методе:
Использование Chromium-Specific параметры
Если вы установите свойство, вы можете использовать класс для доступа к тем же свойствам Chromium и методам, которые используются при автоматизации других Chromium UseChromium true EdgeOptions браузеров.
Если свойство установлено, вы не можете использовать свойства и методы для Microsoft Edge UseChromium true (EdgeHTML).
Другие параметры установки WebDriver
Docker
Если вы используете Docker,запустите следующую команду, чтобы скачать предварительно настроенное изображение с предварительно установленным Microsoft Edge и Microsoft Edge драйвером.
Application Guard
Доверенные сайты, использующие Application Guard в Microsoft Defender (Application Guard), можно автоматизировать с помощью Microsoft Edge Driver.
Неустрашимые сайты, использующие Application Guard, не могут быть автоматизированы или манипулировать с помощью Microsoft Edge Driver. Application Guard запускает ненавязчивые сайты в контейнере, и этот контейнер не предоставляет удаленный порт отладки, который Microsoft Edge драйверу для связи с сайтом.
Администратор предприятия определяет доверенные сайты, в том числе облачные ресурсы и внутренние сети. Сайты, которые не находятся в списке доверенных сайтов, считаются неуверенными. Microsoft Edge Драйвер может автоматизировать как окна InPrivate, так и сайты в списке доверенных сайтов.
Дополнительные сведения о Application Guard см. в этой информации:
Отказ от сбора диагностических данных
Что такое Selenium WebDriver?
Эта статья является продолжением более общей статьи «Что такое Selenium?», в которой объясняется, какое положение занимает Selenium WebDriver среди других инструментов автоматизации веб-приложений.
Здесь я постараюсь рассказать более подробно о том, что такое Selenium WebDriver, и почему его бессмысленно сравнивать с TestComplete, QuickTest Pro и другими инструментами автоматизации тестирования. И дело не только в том, что Selenium WebDriver бесплатный и открытый – его столь же бессмысленно сравнивать с другими бесплатными инструментами, такими как Sahi или Robot Framework.
Потому что Selenium WebDriver – это не инструмент для автоматизации тестирования.
А что же это такое?
На этот вопрос можно дать несколько разных ответов, сначала я дам короткие ответы, а потом – более подробные.
Кроме того, я объясню, почему Selenium WebDriver имеет такой убогий и неудобный в использовании интерфейс (набор команд), почему он не генерирует красивые отчёты и почему несмотря на всё это он настолько популярен 🙂
На всякий случай оговорюсь, что хотя в этой статье речь идёт про WebDriver, многие аргументы справедливы и в отношении Selenium RC, но я не буду ничего говорить специально про эту устаревшую версию, потому что её место – на свалке истории.
Итак, что такое Selenium WebDriver?
По назначению Selenium WebDriver представляет собой драйвер браузера, то есть программную библиотеку, которая позволяет разрабатывать программы, управляющие поведением браузера.
Selenium WebDriver – это драйвер браузера
Наверняка каждый, кто сталкивался с компьютерами, даже не айтишник, знает слово «драйвер». Это такая маленькая программа, точнее программная библиотека, которая позволяет другим программам взаимодействовать с некоторым устройством. Драйвер принтера позволяет печатать что-нибудь на принтере. Драйвер диска позволяет читать и писать данные. Драйвер сетевой карты позволяет обмениваться данными с другими компьютерами по сети.
С драйвером пользователи не работают непосредственно. Они работают с прикладными программами, которые, посредством драйверов, взаимодействуют с теми или иными устройствами. Драйвер не имеет пользовательского интерфейса. Постойте, но ведь иногда бывает пользовательский интерфейс для настройки драйвера? Бывает. Но это интерфейс программы для настройки драйвера, а не самого драйвера. Драйвер имеет только программный интерфейс, его назначение состоит в том, чтобы дать возможность прикладным пользовательским программам взаимодействовать с устройством.
Так вот, Selenium WebDriver, или просто WebDriver – это драйвер браузера, то есть не имеющая пользовательского интерфейса программная библиотека, которая позволяет различным другим программам взаимодействовать с браузером, управлять его поведением, получать от браузера какие-то данные и заставлять браузер выполнять какие-то команды.
Исходя из этого определения, ясно, что WebDriver не имеет прямого отношения к тестированию. Он всего лишь предоставляет автотестам доступ к браузеру. На этом его функции заканчиваются.
Впрочем, в рамках проекта Selenium разрабатывается не только драйвер, но ещё несколько сопутствующих продуктов – Selenium Server позволяет организовать удалённый запуск браузера, при помощи Selenium Grid можно построить кластер из Selenium-серверов. Они встают в один ряд с вышеперечисленными инструментами и фреймворками, потому что также участвуют в построении системы запуска тестов. Кроме того, имеется «рекордер», который называется Selenium IDE, он умеет записывать действия пользователя и генерировать код, в котором используется интерфейс WebDriver для выполнения записанных действий.
Но главным в проекте Selenium является именно WebDriver, это ключевой элемент экосистемы Selenium.
Существуют ли другие драйверы? Разумеется.
Внутри каждого коммерческого «интегрированного» инструмента имеются драйверы браузеров, но они как правило не могут быть использованы отдельно вне этого инструмента. Есть и бесплатные открытые драйверы – Watir предоставляет доступ к основным браузерам, WatiN имеет неплохой драйвер для браузера Internet Explorer, Sahi умеет работать с «большой пятёркой» браузеров.
Как сравнить Selenium WebDriver с другими инструментами?
Из всего вышенаписанного можно сделать вывод, что сравнивать WebDriver с каким-нибудь инструментом тестирования типа TestComplete или Sahi бессмысленно. Они находятся в разных весовых категориях. Это всё равно, что сравнивать драйвер принтера с текстовым редактором.
А что можно сравнивать?
Что касается сравнения с «комплексным» инструментами типа TestComplete или Sahi, для этого нужно брать не WebDriver, а полный стек.
Например, стек для технологии Java может быть таким: Jenkins + Maven + Thucydices + JUnit+ WebDriver. К этому добавляются ещё все возможности языка программирования Java, плюс масса плагинов для Maven и Jenkins, а чтобы совсем всё было круто – можно запускать тесты в облаках, используя какой-нибудь сервис типа SauceLabs.
Вот тогда сравнение будет интересным. Но это уже заслуга не только WebDriver, важен весь стек, а не только драйвер браузера. Что касается WebDriver, стоит отметить лишь то, что он прекрасно встраивается практически в любой стек, это одно из его достоинств как «независимого» драйвера.
Разумеется, WebDriver может использоваться не только при тестировании. Ему вообще безразлично, кто и зачем хочет управлять браузером. Вы можете автоматизировать какие-то рутинные задачи. Можете сделать ботов, которые будут флудить в форумах. Можете сделать скрипт, который автоматически снимает скриншоты для документации. Всё что угодно. Драйверу всё равно. Он всего лишь предоставляет доступ к браузеру.
Кроме того, какой бы инструмент вы ни использовали – вполне возможно, что к нему удастся подключить WebDriver, который имеет реализации на самых разных языках – Java, C#, Ruby, Python. И тогда вы в дополнение ко всем возможностям вашего любимого инструмента добавите все достоинства WebDriver. Это стоит потраченных усилий, потому что среди драйверов на данный момент он лучший.
Ну да, я уже несколько раз повторил, что «он лучший», но при этом не привёл сравнения с другими драйверами. И не буду. Потому что есть аргумент, который в перспективе важнее любых сравнений.
Selenium WebDriver – это спецификация интерфейса для управления браузером
Самое главное отличие WebDriver от всех остальных драйверов заключается в том, что это «стандартный» драйвер, а все остальные – «нестандартные».
И это не простая фигура речи.
Организация W3C действительно приняла WebDriver за основу при разработке стандарта интерфейса для управления браузером. Сейчас он находится в состоянии публичного рассмотрения.
Через год-полтора этот стандарт будет утверждён. И тогда реализация интерфейса WebDriver будет возложена на производителей браузеров, а WebDriver как независимый драйвер, возможно, в будущем исчезнет совсем, потому что он будет встроен непосредственно в браузеры.
Таким образом, можно сказать, что Selenium WebDriver это вообще не инструмент, а спецификация, документ, стандарт, описывающий, какой интерфейс браузеры должны предоставлять наружу, чтобы через этот интерфейс можно было браузером управлять.
Пока стандарт обсуждается, производители браузеров уже действуют. В рамках проекта Selenium было разработано несколько референсных реализаций для различных браузеров, но постепенно эта деятельность переходит в ведение производителей браузеров. Драйвер для браузера Chrome разрабатывается в рамках проекта Chromium, его делает та же команда, которая занимается разработкой самого браузера. Драйвер для браузера Opera разрабатывается в компании Opera Software. Драйвер для браузера Firefox пока разрабатывается участниками проекта Selenium, но в недрах компании Mozilla уже готовится ему замена, которая носит кодовое название Marionette. Этот новый драйвер для Firefox уже доступен в девелоперских сборках браузера. На очереди Internet Explorer и Safari, к их разработке сотрудники соответствующих компаний пока не подключились, но кое-какие сдвиги в этом направлении есть, потому что стандарт (даже будущий) обязывает.
В общем, можно сказать, что Selenium это единственный проект по созданию средств автоматизации управления браузерами, в котором участвуют непосредственно компании, разрабатывающие браузеры. Это одна из ключевых причин его успеха.
А что случится после того, как во всех браузерах будет реализован этот стандарт?
Было бы логично ожидать, что производители инструментов тестирования не станут изобретать велосипеды, а будут управлять браузером через стандартный интерфейс. Можно сказать, что все инструменты станут использовать WebDriver для взаимодействия с браузером. Но это будет уже не Selenium WebDriver как независимый драйвер, а Selenium WebDriver как спецификация интерфейса.
Так почему же у него такой примитивный интерфейс?
Набор команд последовательно сокращался, были выброшены такие «повышающие удобство использования» команды как check, uncheck (для чекбоксов), select (для выпадающих списков). Все они сводятся к более простой команде click и поэтому они лишние. Сейчас в интерфейсе WebDriver осталась только одна избыточная команда – это submit, но может быть когда-нибудь и она будет устранена.
Кроме того, структура интерфейса проектировалась таким образом, чтобы можно было описать его на языке IDL (именно это сделано в стандарте W3C) и сделать реализации на различных языках программирования. Поэтому использовался минимум языковых идиом, минимум «скрытых» переменных, интерфейс «тупой и прямолинейный».
Но зато благодаря этой примитивности интерфейса сейчас для интерфейса WebDriver имеются реализации клиентских библиотек на Java, C#, Ruby, Python, JavaScript, PHP, Perl и даже Haskell!
И благодаря той же самой простоте WebDriver прекрасно интегрируется с любыми другими инструментами, встраивается в любой стек. В этом секрет его популярности и быстрого распространения – он не пытается «победить» другие инструменты, вместо этого он интегрируется с ними.
А как же удобство использования?
Эту задачу должны решать расширения, построенные на базе Selenium WebDriver. Именно они должны предоставлять расширенный набор команд, реализуя эти команды через примитивный интерфейс WebDriver. В дистрибутиве Selenium имеется класс Select, предназначенный для работы с выпадающими списками, который является наглядной демонстрацией того, как должны строиться расширения.
Постепенно появляются библиотеки, которые строятся на базе Selenium WebDriver и предоставляют более высокий уровень абстракции: Selenide, fluent-selenium, watir-webdriver, Thucidides. Популярные фреймворки для проектирования тестов позволяют наряду с другими драйверами использовать WebDriver. Среди таких фреймворков можно упомянуть Robot Framework, Capybara и тот же Thucidides.
Рано или поздно должны появиться вспомогательные библиотеки, облегчающие работу с теми или иными наборами виджетов – jQuery, Prototype, ExtJS, GWT и прочими.
Число таких расширений и инструментов будет расти, сложность тоже. Так что вскоре может так случиться, что вы, используя какой-то инструмент, будете выполнять тесты, даже не подозревая о том, что взаимодействие с браузером осуществляется через драйвер Selenium WebDriver.
Стоит ли тогда вообще изучать Selenium?
Может быть лучше изучать эти библиотеки и инструменты более высокого уровня?
Надеюсь, всё вышесказанное позволит вам лучше понять, какое место Selenium WebDriver занимает в общей картине мира и как он соотносится с другими инструментами. Если всё ещё остались непонятные моменты – задавайте вопросы в комментариях, я постараюсь всё прояснить.
Что такое Selenium Webdriver
Основатель белорусского сообщества автоматизаторов COMAQA.BY Антон Семенченко рассказывает о том, что такое Selenium Webdriver и какие преимущества имеет этот инструмент.
Webdriver — популярный инструмент для управления реальным браузером, который можно использовать как для автоматизации тестирования веб приложений, так и для выполнения других рутинных задач, связанных с работой в вебе. Управление происходит как локально, так и удалённо и наиболее близко имитируюет действия пользователя.
Кроме того, Webdriver — проект с открытым исходным кодом, поддерживает множество языков программирования и имеет большое сообщество пользователей.
Selenium 2 (или Webdriver) — последнее пополнение в пакете инструментов Selenium и является основным вектором развития проекта. Это абсолютно новый инструмент автоматизации. По сравнению с Selenium RC Webdriver использует совершенно иной способ взаимодействия с браузерами. Он напрямую вызывает команды браузера, используя родной для каждого конкретного браузера API. Как совершаются эти вызовы и какие функции они выполняют зависит от конкретного браузера.
В то же время Selenium RC внедрял код JavaScript в браузер при запуске и использовал его для управления веб-приложением. Таким образом, Webdriver использует способ взаимодействия с браузером более близкий к действиям реального пользователя.
Самое главное изменение новой версии Selenium — это Webdriver API.
Selenium 1.0 (RC) + WebDriver = Selenium 2.0
По сравнению с более старым интерфейсом он обладает рядом преимуществ:
Для работы с Webdriver необходимо три основных программных компонента:
Важной особенностью инструмента является используемый им JSON Wire Protocol. Все реализации Webdriver, которые взаимодействуют с браузером, или RemoteWebdriver сервер используют общий протокол, который называется JSON Wire Protocol. Он определяет RESTful веб-сервис, используя JSON по HTTP.
Если клиентская реализация Webdriver предполагает объектно-ориентированный вариант, то JSON Wire protocol представляет из себя более плоский Webdriver API в виде request/response пар команд и ответов.
Такой подход к архитектуре инструмента сделал возможным разработку драйвера каждого отдельного браузера независимой друг от друга и от разработки клиента. Более того, это дало возможность отдать эту задачу самим вендорам браузеров.
На данный момент Json Wire Protocol является рабочим черновиком стандарта, де-факто Webdriver — уже стандарт. Теперь ChromeDriver разрабатывается и поддерживается разработчиками браузера Chrome, команда Firefox также разрабатывает драйвер для своего браузера.
С другой стороны, имея универсальный протокол и клиент к нему, мы можем использовать их для любого бэкенда, имеющего цель автоматизацию функционального управления приложением. Appium (инструмент для автоматизации мобильных приложений) и Winium (инструмент для автоматизации Windows-приложений), оба использующие Webdriver JSON Wire Protocol и клиент — лишь некоторые из многих примеров. Есть и более экзотичные варианты, вроде QTWebdriver, который позволяет автоматизировать QT-приложения, используя Webdriver-клиент и API.
Кроме того, Selenium Webdriver — открытый и очень гибкий инструмент. Он легко интегрируется с различными тестовыми фреймворками и другими инструментами, позволяя создавать на его основе более узконаправленные инструменты для функционального тестирования, тестирования производительности, web crawling и других целей.
Хотите сообщить важную новость? Пишите в Телеграм-бот.
А также подписывайтесь на наш Телеграм-канал.
😣😖😫😩 Айтишники рассказали про признаки плохого оффера. Читайте истории, выводы и советы.





