At a 2013 conference session, Simon Stewart, the Selenium project lead and inventor of WebDriver, announced that Selenium 3.0, a widely used tool for user-focused automation of mobile and web apps, would be released by Christmas. Three years after that announcement, Selenium 3.0 still hasn't been released, but this month we got more information about Selenium 3.0 and a more likely release time frame.

"I did say Christmas, but I didn't specify what year," Stewart said jokingly in a webinar last week. That webinar only had room for 1,000 participants, but the registration list was well over 10,000.

After delays in the project, he's hoping that Christmas 2016 could be the release date for the long-awaited Selenium 3.0. I talked to Juho Perälä, a testing specialist at the Finnish development firm, BITFACTOR Oy, about the significance of some of these announcements and what they mean for automation testers and developers who are using Selenium and have a significant investment in Selenium tests.

Here are the highlights of the Selenium roadmap, which should give companies plenty of leadtime to figure out what changes to implement in their test suites between now and the Selenium 3.0 release, as well as the 4.0 and 5.0 releases.

TechBeacon: What are the changes going to be between Selenium 2.0 and Selenium 3.0?

Juho Perälä: The big change is that the old Selenium Core libraries will be dropped in 3.0. The focus will shift completely to the WebDriver API. But there was no detailed information about possible changes of WebDriver API from 2.0 to 3.0. It seems that the WebDriver API will remain more or less unchanged.

TB: Did the project leaders give a timeline for the beta or GA release of 3.0?

JP: Not exactly.

TB: What’s the history of this 3.0 release. Wasn’t it announced in 2013? What took so long?

JP: It was originally announced in 2013 that it would be delivered by Christmas (2013 we assumed), but it has been delayed. It is still planned to be delivered by Christmas, but Christmas 2016 still hasn't been confirmed.

There was no explanation for the delay, but it could have been due to lack of resources to complete the release by that time frame, or just a major change in the direction, which makes sense since the plan is to remove the Selenium Core completely in this release. Perhaps they wanted to give developers more time to migrate to using the WebDriver API in favor of the Selenium Core libraries.

TB: How significant is the removal of Selenium Core?

JP: I think most users are already writing tests with WebDriver, so this change won't really impact those users. But for the users of Selenium Core, there may be some significant work ahead if they want to migrate to the future, supported versions of Selenium. They'll need to migrate their tests to WebDriver, but there are ways to preserve your existing investment in tests even if they're older Selenium Remote Control (Selenium RC) tests.

TB: Was there any news around the Selenium Java APIs?

JP: Yes. The Selenium Java APIs will be broken into three packages: selenium-java (WebDriver classes), Selenium 3 server (command line remote server), and leg-rc, which will provide the current Selenium interface and client-side classes allowing execution of existing Selenium tests. Instead of Selenium Core, the leg-rc is backed by the WebDriver implementation.

TB: What is the background and status for the W3C WebDriver specification? What is the advantage of having a specification?

JP: The WebDriver API has grown to be relevant outside of Selenium. It is used in multiple tools for automation. For example, it's used heavily in mobile testing through tools such as Appium and iOS Driver. The W3C standard will encourage compatibility across different software implementations of the WebDriver API.

There is a working draft available currently, and the working group hopes to have it finished by the end of the year.

After that first specification is complete and in the browser vendors' hands, work will start on W3C WebDriver Level 2, which will focus on testing standard web user notifications such as allowing geolocation or other, deeper level access through the browser, and access to the shadow DOM.

TB: What does it mean when they say that browser vendors will own drivers in the future?

JP: The browser providers will accept responsibility for the implementation of the WebDriver API. The vendors have access to the internal implementation of their browsers, so putting this spec in their hands will allow for more advanced WebDriver implementations. It also will open up more sophisticated features for Selenium in particular by moving much of the workload off of the open-source contributors and into the hands of the browser vendors. They'll be able to do things and use their own technologies to improve Selenium in ways that the general open-source community could never have.

TB: What reasoning did the project lead give for some of these decisions?

JP: The reason they're retiring the Selenium Core is because it's becoming increasingly hard to test modern web applications using a pure JavaScript approach.

TB: What are your personal thoughts on this announcement?

JP: This was mostly about the Selenium roadmap in general. Here's the key slide from the announcement that really explains where the core is moving in the next two releases.

Simon Stewart expects that Selenium 5.0 will drop support for the WebDriver implementation that doesn't comply with the final W3C specification.

Learn more

The thing to remember is that WebDriver is so flexible that it is being used in numerous contexts outside of Selenium to do automated testing. So keep an eye out for WebDriver implementations that are already available to help you in your own stack, along with future implementations as it moves to a W3C spec.

If you want to hear some of the additional background around Selenium and the forthcoming changes, as well as some of the audience questions from the webinar, watch the entire presentation here:

Image credit: Flickr

Keep learning