And now it's official. Selenium has released it's beta version of Selenium 3.0.
Let's go through some of the highlights of the Selenium road-map, which will enable the companies to find plenty of time to figure out what changes to implement in their test suites.What are the changes going to be between Selenium 2.0 and Selenium 3.0?
One of the biggest change is that the old Selenium Core libraries will be dropped in 3.0. The focus will shift completely to the WebDriver API.
For the last six years it has been advised to switch to the newer WebDriver APIs and to stop using the original RC APIs. With Selenium 3.0, the original implementation of RC has been removed, replaced by one that sits on top of WebDriver. For many users, this change will go completely unnoticed, as they’re no longer using the RC APIs.
How significant is the removal of Selenium Core?
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.
What is the background and status for the W3C WebDriver specification? What is the advantage of having a specification?
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.
What are the important Changes?
* Minimum java version is now 8+ * The original RC APIs are only available via the leg-rc package. * To run exported IDE tests, ensure that the leg-rc package is on the classpath. * Support for Firefox is via Mozilla's geckodriver. You may download this from https://github.com/mozilla/geckodriver/releases * Support for Safari is provided on macOS (Sierra or later) via Apple's own safaridriver. * Support for Edge is provided by MS: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ * Official support for IE requires version 9 or above. Earlier versions may work, but are no longer supported as MS has end-of-lifed them.
* New html-table runner backed by WebDriver. * Unused command line arguments are now no longer parsed.
* maven packaging fixes * Update GeckoDriver --port argument in all bindings * System property webdriver.firefox.marionette now forces the server in marionette
or legacy firefox driver mode, ignoring any related Desired Capability. * Grid fix NPE's on registration when -browser not specified.
What are the changes to be done in using firefox driver ?
If you are using Selenium 3 then to work with Firefox browser you need to use separate a driver which will interact with Firefox browser. If you have noticed then we have done the same thing for Chrome and IE browser as well. One important thing in this post is even if you are using Firefox beta version then it will work. If you are using firefox 47 and so on then it will work.
Let us see how to use the Firefox Marionette Driver
Let’s run a basic program with Selenium 3 beta versionProgram 1 without any driver
Output console
The path to the driver executable must be set by the webdriver.gecko.driver system property;As you can see to work with Firefox we have to set the property now. You can download the driver from Github and then you can extract and you will get .exe file.
Download URL – https://github.com/mozilla/geckodriver/releases/tag/v0.9.0