Interested Article - Selenium
- 2021-03-26
- 1
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 | |
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 .
См. также
- Автоматизированное тестирование
- Тестирование программного обеспечения
- Юзабилити-тестирование
- Альфа-тестирование
- Бета-тестирование
- Регрессионное тестирование
- Разработка через тестирование
Примечания
- (англ.) . selenium.dev. Дата обращения: 19 декабря 2019. 19 декабря 2019 года.
- Krill, Paul. (англ.) // InfoWorld : magazine. — 2011. — 6 April. 26 декабря 2013 года.
- (7 марта 2007). Дата обращения: 1 сентября 2016. 13 мая 2016 года.
- . NewCircle. Дата обращения: 29 июня 2014. 12 августа 2014 года.
- , 2017-12-31, из оригинала 19 февраля 2020 , Дата обращения: 19 июня 2017 – via GitHub . Дата обращения: 19 июня 2017. Архивировано 19 февраля 2020 года.
- . — 2017-06-17. 17 мая 2017 года.
- (англ.) . Mozilla Developer Network. Дата обращения: 19 июня 2017. 12 сентября 2017 года.
- ↑ (англ.) . Дата обращения: 8 февраля 2021. 4 марта 2021 года.
Ссылки
- (англ.) на официальном сайте.
- .
- .
- .
- 2021-03-26
- 1