Interested Article - Selenium

Selenium WebDriver — инструмент для автоматизации действий веб-браузера. В большинстве случаев используется для тестирования Web-приложений , но этим не ограничивается. В частности, он может быть использован для решения рутинных задач администрирования сайта или регулярного получения данных из различных источников (сайтов). Используется редко, однако имеет важное значение.

История

В июне 2004 года разработчик Jason Huggins написал на языке JavaScript библиотеку, названную «JavaScriptTestRunner» (ныне известную как «Selenium Core») и предназначенную для запуска тестов в браузере . Тогда Huggins работал в офисе фирмы , расположенном в городе Чикаго , а созданная библиотека использовалась для тестирования сайта , написанного на языке Python с использованием системы управления содержанием (CMS) Plone . Huggins помогали Paul Gross и Jie Tina Wang — сотрудники фирмы ThoughtWorks. Позднее к разработке присоединились другие разработчики и тестировщики компании.

Название «Selenium» («selenium» в переводе с английского языка — селен ) стало использоваться после того, как в одном из своих электронных писем (email) Huggins пошутил о конкурирующем проекте, имеющем название «Mercury Interactive QuickTest Professional» («mercury» в переводе с английского языка — ртуть ), написав о том, что можно вылечиться от отравления ртутью , принимая с пищей селен .

Paul Hammant (сотрудник фирмы ThoughtWorks) предложил открыть исходный код библиотеки «Selenium Core», предоставить возможность писать сценарии на любом языке программирования и запускать сценарии удалённо. Для реализации последнего требовалось обойти ограничения, реализуемые браузером для выполнения правила ограничения домена (same origin policy) . Для обхода правила Aslak Hellesoy и Mike Melia (сотрудник фирмы ThoughtWorks) написали page rewriter. Paul Hammant написал программы на языке Java , реализующие сервер и клиент. Aslak Hellesoy и Obie Fernandez переписали клиент на языке Ruby в виде библиотеки.

Сотрудники фирмы ThoughtWorks, офисы которой располагались по всему миру, стали использовать «Selenium» в коммерческих проектах. Разработку продолжали Mike Williams, Darrell Deboer и Darren Cotterill.

Разработчики фирмы «BEA Systems, Inc.», Dan Fabulich и Nelson Sproul переписали код сервера, для реализации HTTP -proxy использовали код из проекта Jetty (HTTP-сервер на Java). Новый сервер стал известен как «Selenium Remote Control» или «Selenium RC». Работу над «Selenium RC» продолжили Pat Lightbody, Dan Fabulich и Nelson Sproul.

В декабре 2004 года исходный код проекта «Selenium» был открыт.

В 2005 году на встрече разработчиков Dan Fabulich и Nelson Sproul (с помощью Pat Lightbody) предложили принять набор патчей, превращающих «Selenium RC» в продукт, известный сегодня как «Selenium 1.0». На той же встрече управление проектом было возложено на комитет, а разработчики Jason Huggins и Paul Hammant стали представлять фирму ThoughtWorks в созданном комитете.

Летом 2006 года разработкой библиотеки «Selenium Core» занималась команда разработчиков, состоявшая из Wang Peng Chao, Huang Liang, Xiong Jie и других, под руководством Mike Williams в офисе фирмы ThoughWorks, расположенном в Китае. Команда реализовала возможности, доступные в «Selenium 1.0».

В 2007 году Jason Huggins нанялся работать в фирму Google, стал членом (тогда секретной) команды поддержки «Selenium», совместно с другими разработчиками (например, с Jennifer Bevan) продолжил работу над «Selenium RC». Представители фирмы Google впервые объявили об использовании «Selenium» на конференции «Google Test Automation Conference» (GTAC-2007) , проходившей в Нью-Йорке 23-24 августа 2007 года. Позднее Jennifer Bevan получила возможность вносить изменения в код проекта «Selenium».

Haw-bin Chai из Чикаго создал патчи, добавляющие функциональность XPath и реализующие расширение, названное «UI Element», после чего в 2007 году был приглашён в команду разработчиков Selenium.

Simon Stewart, работавший тогда в фирме ThoughtWorks, разработал инструмент, названный WebDriver. WebDriver запускал браузеры и работал с ними, при этом не был ограничен возможностями, предоставляемыми JavaScript, поэтому по возможностям превосходил «Selenium Core». Но для поддержки каждого браузера требовалось написание кода. В 2007 году Simon Stewart представил свою разработку на конференции GTAC-2007. В 2009 году разработчики встречались на конференции GTAC-2009 и приняли решение о слиянии кодовых баз проектов Selenium и WebDriver. В 2007—2012 годах Simon Stewart работал в фирме Google, а затем — в фирме Facebook, при этом часть своего рабочего времени тратил на то, чтобы сделать WebDriver совместимым с «Selenium RC». Новый продукт был назван «Selenium WebDriver» или «Selenium 2.0» .

В 2008 году Philippe Hanrigou, работавший тогда в фирме ThoughtWorks, создал проект «Selenium Grid». «Selenium Grid» — проект с открытым исходным кодом, предоставляющий программы, предназначенные для запуска сценариев «Selenium RC» на нескольких компьютерах одновременно. Разные сценарии запускались на нескольких компьютерах для уменьшения времени их выполнения. Возможности «Selenium Grid» совпадали с возможностями аналогичного, но закрытого и внутреннего, продукта фирмы Google. Pat Lightbody владел сайтом, названным «Hosted QA» и позволяющим получать скриншоты веб-страниц , продал сайт фирме «Gomez, Inc».

Shinya Kasatani из Японии создал расширение для браузера Firefox , получившее название «Selenium IDE» и позволяющее записывать тесты, сохранять их и воспроизводить. Расширение не было ограничено правилом ограничения домена (same origin policy) .

Общие сведения

Selenium WebDriver — это в первую очередь набор библиотек для различных языков программирования. Эти библиотеки используются для отправки HTTP запросов драйверу (отсюда и название WebDriver), с помощью протокола JsonWireProtocol , в которых указано действие, которое должен совершить браузер в рамках текущей сессии. Примерами таких команд могут быть команды нахождения элементов по локатору, переход по ссылкам, парсинг текста страницы/элемента, нажатие кнопок или переход по ссылкам на странице веб-сайта . Существуют как официальные привязки библиотеки к популярным языкам программирования, так и любительские. К примеру, библиотека для поддержки языка PHP не является официальной и разрабатывается Facebook .

Проектом Selenium и сообществом поддерживается работа с браузерами Microsoft Internet Explorer , Google Chrome , Mozilla Suite и Mozilla Firefox под управлением операционных систем Microsoft Windows , Linux и Apple Macintosh .

Selenium, начиная с версии 3.х начал требовать для работы с браузером Firefox отдельный драйвер - , ранее называвшийся Marionette

В рамках проекта Selenium выпускается инструмент «Selenium IDE » — расширение к браузерам Firefox и Chrome , представляющее собой библиотеку Selenium с графическим интерфейсом (GUI) , построенным с использованием XUL . Расширение позволяет записывать, сохранять и воспроизводить сценарии тестирования web-страниц. Сценарии сохраняются в формате HTML в виде таблицы.

Поддерживаемые платформы

Список браузеров , поддерживаемых разработчиками проекта Selenium и/или сообществом :

Браузер Операционная система Разработчик
Chromium / Google Chrome Windows / macOS / Linux Google
Firefox Windows/macOS/Linux Mozilla
Microsoft Edge Windows 10 Microsoft
Internet Explorer Windows Selenium Project
Safari macOS El Capitan и более новые Apple
Opera Windows/macOS/Linux Opera

Также возможно использование с и , хотя последнее не рекомендуется, так как этот продукт не обновляется и не поддерживается своим разработчиком с 2017 года и соответствующая функциональность с этого времени присутствует в браузере Google Chrome .

См. также

Примечания

  1. (англ.) . selenium.dev. Дата обращения: 19 декабря 2019. 19 декабря 2019 года.
  2. Krill, Paul. (англ.) // InfoWorld : magazine. — 2011. — 6 April. 26 декабря 2013 года.
  3. (7 марта 2007). Дата обращения: 1 сентября 2016. 13 мая 2016 года.
  4. . NewCircle. Дата обращения: 29 июня 2014. 12 августа 2014 года.
  5. , 2017-12-31, из оригинала 19 февраля 2020 , Дата обращения: 19 июня 2017 – via GitHub . Дата обращения: 19 июня 2017. Архивировано 19 февраля 2020 года.
  6. . — 2017-06-17. 17 мая 2017 года.
  7. (англ.) . Mozilla Developer Network. Дата обращения: 19 июня 2017. 12 сентября 2017 года.
  8. (англ.) . Дата обращения: 8 февраля 2021. 4 марта 2021 года.

Ссылки

  • (англ.) на официальном сайте.
  • .
  • .
  • .
Источник —

Same as Selenium