Theme images by Storman. Powered by Blogger.

Software Testing

[best practices][feat1]

Recent

recentposts

Popular

Comments

recentcomments

Most Recent

Random Posts

randomposts

Facebook

page/http://facebook.com/letztest

Wednesday, August 3, 2016

Selenium 3 is finally released - First impressions of Selenium WebDriver 3.0.0 beta 1

- No comments

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 version

Program 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

 Complete program for Firefox in Selenium using geckodriver

Now you can run the program and you will get expected output.

Firefox Marionette Driver, how to use the Firefox Marionette Driver, selenium, selenium 3, selenium webdriver