В этом разделе публикуются официальные новости: сообщения о выходе новых релизов Selenium, объявления о конференциях, тренингах и иных мероприятиях, посвящённых Selenium, другие официальные объявления.

1 апреля (и это не шутка) стандарт W3C WebDriver завершил очередной этап и получил статус W3C Candidate Recommentation.

По правилам W3C каждый стандарт должен пройти четыре уровня зрелости (хотя не каждый из них добирается до последнего):

  • Working Draft -- на этом этапе идёт основная разработка текста стандарта, в этом статусе WebDriver находился с конца 2011 года. Для успешного завершения этого этапа и перехода на следующий группа ревьюеров должна убедиться в том, что текст стандарта достаточно полный, не осталось недоспецифицированных участков. Кроме того, они должны поверить, что этот стандарт может быть реализован, что это технически достижимая цель. В конце января в W3C был отправлен официальный запрос на ревью, всё прошло гладко и WebDriver благополучно получил следующий статус.
  • Candidate Recommendation -- целью этого этапа является демонстрация того, что стандарт действительно может быть реализован. Для этого нужно создать как минимум две работающие реализации, полностью удовлетворяющие стандарту. На эту роль выбраны geckodriver и драйвер для Internet Explorer. Предполагается, что этот этап займёт полгода. По результатам должен быть написан Implementation Report, и если ревьюеры признают его удовлетворительным -- стандарт перейдёт на следующий уровень зрелости.
  • Proposed Recommendation -- с этого момента стандарт можно считать полностью завершённым, для перехода на следующий этап нужно просто соблюсти некоторые бюрократические тонкости -- должно состояться формальное голосование боссов комитета W3C за принятие стандарта, должна быть описана процедура фиксации ошибок в стандарте (конечно, они могут остаться, никто не безгрешен), и после этого наступает последний этап.
  • Recommendation -- в этом статусе стандарт остаётся навсегда. Конечно, позже может быть разработана новая версия, но это уже совсем другая история, которая начинается с самого начала, с Working Draft.

С практической точки зрения это означает, что в течение ближайшего полугода Selenium будет активно дорабатываться, нужно его привести в соответствие со стандартом. Но и "старые" драйверы, которые пока не удовлетворяют стандарту (chromedriver, safaridriver, edgedriver) тоже, конечно, будут поддерживаться.

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

Ранее мы писали, что старая схема запуска FirfoxDriver (без использования geckodriver) не будет работать в браузерах, начиная с версии 48. Тем, кто пока не готов переходить на новую схему, предлагалось использовать специальную версию "для корпоративных клиентов" Firefox ESR 45.

Но вот пришло время обновления и для этой линейки браузера, на прошлой неделе вышла версия ESR 52.

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

Хорошая новость состоит в том, что Mozilla пошла навстречу пользователям и продлила возможность использовать в ESR 52 неподписанные расширения, в том числе это распространяется и на Selenium.

Правда, для этого вам всё таки придётся обновить версию Selenium до самой последней (на текущий момент 3.3.1) и при инициализации драйвера явно указывать, что нужно использовать старую схему запуска. Вот так это делается в разных языках программирования:

// Java
FirefoxOptions options = new FirefoxOptions().setLegacy(true);
WebDriver driver = new FirefoxDriver(options);
// C#
FirefoxOptions options = new FirefoxOptions();
options.UseLegacyImplementation = true;
driver = new FirefoxDriver(options);
# Python
wd = webdriver.Firefox(capabilities={"marionette": False})
# Ruby
caps = Selenium::WebDriver::Remote::Capabilities.new()
@driver = Selenium::WebDriver.for(:firefox, :desired_capabilities => caps)
// JavaScript
var driver = new webdriver.Builder()
.withCapabilities({'marionette': false})
.forBrowser('firefox')
.build();
Наконец-то появилась очередная стабильная версия Selenium 3.3.1.
 
Ей предшествовала серия неудачных релизов: в 3.1.0 забыли включить библиотеку, необходимую для работы FirefoxDriver на Linux; 3.2.0 выпустили преждевременно, без тщательного тестирования, с кучей багов; в 3.3.0 исправили почти все баги, но не заметили проблему с подключением узлов к хабу сервера Selenium. Поэтому использовать эти промежуточные релизы не рекомендуется, обновляйтесь сразу до версии 3.3.1.
 
Что нового появилось с момента выхода версии 3.0, первого релиза в "третьей" серии:
 
Главная фишка -- реализация "сложных действий" (Actions) согласно стандарту W3C WebDriver. С точки зрения клиентского API ничего не изменилось, но внутренности полностью переписаны. Новый механизм активируется только при работе с Firefox, для других браузеров продолжает использоваться старый способ.
 
Внимание: Selenium 3.3 требует geckodriver 0.15 и Firefox 52 или новее.
 
В Java при инициализации FirefoxDriver (точнее говоря при построении объекта типа FirefoxBinary) теперь можно указывать канал ("esr", "release", "beta", "aurora" или "nightly"). Если на машине установлено несколько разных версий Firefox, из разных каналов, Selenium постарается найти и запустить нужную. Канал можно также указывать вместо номера версии при удалённом запуске Firefox через Selenium Server.
 
Заработал новый HTML Runner, запускатель для сценариев, сохранённых из Selenium IDE. Теперь он, разумеется, использует движок WebDriver, потому что старого движка (RC) больше нет.
 
Ну и как всегда исправлено некоторое количество багов и удалено некоторое количество устаревших (deprecated) классов и методов.
 
P.S. Версия 3.3.1 пока вышла только для Java, реализации на других языках отстают... Есть вероятность, что в них Actions будут доступны уже только в следующей версии 3.4 или даже позже...

После каждого тренинга мы просим участников написать отзыв -- что понравилось, что не понравилось. Это помогает нам в следующих тренингах не повторять ошибок и делать их лучше.

Перед новогодними каникулами завершила работу первая группа нового тренинга Selenium WebDriver: полное руководство.

С отзывами учеников первой группы курса можно познакомиться по ссылке.

Кроме того, по уже сложившейся традиции после создания нового тренинга и завершения работы первой учебной группы Алексей Баранцев пишет “отзыв” со стороны тренера. И это тоже позволяет проанализировать возникшие проблемы, чтобы в следующий раз их избегать и делать тренинги ещё качественнее.

Ниже некоторые заметки тренера о прошедшем курсе.

  1. В конце прошлого года мы решили все имеющиеся у нас разрозненные тренинги по инструменту Selenium WebDriver заменить одним универсальным учебным курсом.
    По нашим планам должно было получиться 12 занятий по 45 минут. Но на самом деле объём записанного материала получился в полтора раза больше. Информации действительно так много.
    Но цену мы решили пока не поднимать :)

  1. В начале курса мы даём участникам анкету, в которой среди прочего предлагается оценить свои навыки программирования по пятибалльной шкале. Результат оказался неожиданным -- средняя оценка примерно 3 балла.
    При этом та же самая анкета показала, что почти 70% участников имеют практический опыт использования Selenium.
    Это вызвало некоторые опасения при подготовке заданий для самостоятельной работы. С одной стороны, они должны были быть достаточно сложными, потому что большинство участников уже работало с инструментом и простые задания будут скучны. С другой стороны, они не должны были требовать хороших навыков программирования.
    Насколько можно судить по результатам выполнения заданий и обсуждению в чате учебной группы -- это сделать удалось. Задания достаточно сложные, для их выполнения нужно хорошо знать Selenium (то есть внимательно смотреть и слушать лекции), но с точки зрения программирования они весьма просты.

  1. Та же самая анкета в очередной раз подтвердила, что мы не зря уделяем больше внимания языкам Java, C# и Python. Один из вопросов анкеты звучал так: “Какой из пяти языков Вы можете назвать наиболее предпочтительным для себя?” Вот как распределились языковые предпочтения участников (по горизонтали -- значения в процентах):

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

  1. В процессе создания примеров к лекциям было найдено некоторое количество багов в Selenium.
    Во-первых, благодаря нашим ученикам, обнаружились явные дефекты в Selenium, пусть небольшие, но всё равно дефекты (некоторые из них, кстати, уже исправлены и в следующем релизе их не будет).
    Во-вторых, были выявлены несоответствия в реализациях на разных языках. Они проявились в процессе создания примеров к лекциям. Например, оказалось, что в реализации на Ruby вообще нет класса ExpectedConditions, а в реализации на JavaScript отсутствует вспомогательный класс для работы с выпадающими списками (Select).
    Поэтому хочется сказать спасибо нашим ученикам за то, что они помогают улучшать инструмент Selenium!

15-16 ноября в Лондоне проходила конференция Selenium Conf 2016.

Доступны записи выступлений.

Перевод сообщения в официальном блоге

Мы рады сообщить о выпуске стабильной версии Selenium 3.0. Стадия бета-тестирования завершилась, и мы считаем, что переход с версии 2.53.1 на версию 3.0 теперь можно считать достаточно безопасным. Вот какие основные изменения произошли в новой версии:

Для тех, кто использует WebDriver API, новая версия не требует внесения каких-либо изменений в ваш код, просто подключаете новую версию и всё. Пользователям Selenium Grid придётся обновить конфигурационные json-файлы, так как их формат поменялся. Изменился также набор опций командной строки.

Основным изменением в Selenium 3.0 является полное отсутствие драйвера предыдущего поколения, Selenium Core. Продолжать использовать Selenium RC API можно, но при этом всё равно будет использоваться реализация на базе Selenium WebDriver. Подробнее об этом можно почитать здесь.

За пять лет, которые отделяют выход версии 3.0 от первого релиза версии 2.0, в проекте Selenium многое поменялось. Когда мы выпускали Selenium 2, мы сами делали драйверы для всех браузеров. Сейчас большинство производителей браузеров сами делают реализации драйверов (Apple, Google, Microsoft и Mozilla), и мы очень этому рады, потому что никто лучше них не может это сделать. Никто не знает особенности работы браузеров так же хорошо, как их разработчики. Это даёт им возможность сделать драйверы более тесно интегрированными с браузером, благодаря чему ваши тесты будут быстрее и стабильнее.

Другое значительное достижение -- создание на базе WebDriver спецификации интерфейса управления браузерами. Эта спецификация разрабатывается под эгидой комитета W3C. Пока она ещё не получила статус TR "technical recommendation", продолжается активная работа над текстом (в которой принимают участие и члены проекта Selenium project), а также разрабатываются реализации, которые подтвердят согласованность и полноту спецификации.

Mozilla является первой компанией, которая пытается разработать новый драйвер в соответствии со спецификацией W3C. Положительным моментом является то, что по мере развития этого драйвера выявляются недостаточно хорошо проработанные места в спецификации. Но с другой стороны, это привело к тому, что Mozilla "бежит впереди паровоза", потому что версия драйвера, совместимая со стандартом, оказывается не слишком хорошо совместима с текущей версией Selenium 3. Полная совместимость всех частей Selenium со спецификацией W3C является целью версии Selenium 4. Поэтому сейчас лучшее, что мы можем предложить пользователям Firefox -- либо продолжать использовать старую схему интеграции и старые версии браузера (лучше всего для этого подходит Firefox ESR 45), либо регулярно обновляться до самых последний версий Selenium и geckodriver.

Мы хотим поблагодарить каждого из тех, кто внёс свой вклад в разработку Selenium 3. Большое спасибо членам проекта Selenium, контрибьюторам, а также инженерам из компаний Google, Microsoft, Mozilla и Apple и другим участникам команды, разрабатывающей спецификацию W3C WebDriver. Отдельная благодарность тем, кто не жалел своего времени, чтобы писать баг-репорты и сообщать нам о проблемах, членам сообщества пользователей Selenium. Мы благодарим также организацию Software Freedom Conservancy, обеспечивающую логистическую и юридическую поддержку нашего проекта.

Получайте удовольствие от автоматизации! Да будут ваши тесты быстры и надёжны!

-----------

P.S. В дополнение к официальному пресс-релизу, от редакции Selenium2.Ru хотим добавить, что мы не отстаём от трендов, и уже меньше чем через месяц запускается наш новый тренинг "Selenium WebDriver: полное руководство", ориентированный на пользователей Selenium 3.

Go to top