BugRaptors

Services

  • Manual Testing
  • Automation Testing
  • Performance Testing
  • Security Testing
  • Web Testing
  • Mobile Testing
  • AI Testing

Solutions

  • BugBot
  • MoboRaptors
  • RaptorVista

Resources

  • Blogs
  • Case Studies
  • Client Testimonials
  • Ebooks
  • News

More Info

  • Contact Us
  • Privacy Policy
  • Terms and Conditions
  • Careers
  • FAQ
  • Sitemap

Subscribe to our Blogs

Copyright ©BugRaptorsAll rights reserved.

Branding Partner: Make My Brand
Bugraptor logo
Bugraptor logo
Company
AI-Enhanced Engineering Solutions
QA Offerings
Verticals
Tools
Resources
Bugraptor logo
Company
Preparing menu...
AI-Enhanced Engineering Solutions
Preparing menu...
QA Offerings
Preparing menu...
Verticals
Preparing menu...
Tools
Preparing menu...
Resources
Preparing menu...

We use cookies to improve your experience. By using our site, you agree to our cookie policy.

Back to Articles
Test Automation

Jul 31, 2020

Introduction To Selenium 3.0: An Upgradation Using GeckoDriver

Suraj Kadav
1160 views
3 min read
Add Us as Your Preferred Source
Introduction To Selenium 3.0: An Upgradation Using GeckoDriver

Selenium 2.0 was released in 2011 and introduced the new WebDriver APIs that encouraged everyone to start moving to them. Selenium 3.0 is a simple drop-in upgrade version if you're currently using the WebDriver APIs. None of the WebDriver APIs has been changed, and the code is essentially the same as the last 2.x release. Even if you're using Selenium Grid, the same applies: in most cases, you can just drop in the new JAR, and you're done.

At the same time as the Selenium project is shipping Selenium 3.0, the internals of Firefox is being changed by Mozilla to make it more stable and secure which also makes the community-provided Firefox Driver no longer work. If you use Firefox for your testing, you'll need to use the geckodriver, which is an executable similar to the chrome driver and MS's edgedriver. Even if you're using Selenium 2, you'll need to start using geckodriver— the change is in the browser, not Selenium.

Also Read: Introduction To API's & How To Automate API's Testing With Selenium Webdriver

Gecko Driver:

It is a proxy for using W3C WebDriver-compatible clients to interrelate with Gecko-based browsers. Geckodriver provides HTTP API defined by the WebDriver protocol to connect with Gecko browsers, such as Firefox (Version after 47).

Selenium 3 turns on Marionette (the next generation of Firefox Driver) by default. Selenium 3 expects us to set a path to the driver executable by the webdriver.gecko.driver, even if you are working with older versions of the Firefox browser.

Note: If we are using the Selenium version below 2.53, we don't need a gecko additional driver.

If we are not doing so, it will throw exception "java. lang.IllegalStateException: The webdriver.gecko.driver system property must set the path to the driver executable;"

The other significant changes in Selenium 3.x are listed below:

* The original RC APIs are only available via the leg-rc package.

* Ensure that the leg-rc package is on the classpath, to run exported IDE tests.

* Minimum java version is now 8+.

* Official support for IE requires version 9 or above.

* Unused command line arguments are now no longer described.

* New HTML-table runner supported by WebDriver.

Now let us see the example to launch firefox browser with Selenium 3 using gecko driver:

System.setProperty("webdriver.gecko.driver", "path of geckodriver.exe");

WebDriver driver = new FirefoxDriver();

package com.testing;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.Test;

public class SeleniumWithGeckodriver {

       public WebDriver driver;

       @Test

       public void browserOpenUsingGeckodriver() {

              System.setProperty("webdriver.gecko.driver", "path of geckodriver.exe");

              driver = new FirefoxDriver();

       }

       @Test

       public void openUrl() {

              driver.navigate().to("http://www.google.com");

              driver.manage().window().maximize();

       }

       @Test

       public void closeDriver() {

                     driver.close();

       }

}

To run tests on remote machines, WebDriver has to use the case of the DesiredCapabilities and RemoteWebDriver in order to specify a version, platform and browser name to implement tests.

Usually, to run tests on our local machine, we will just specify as WebDriver driver = new FirefoxDriver(); to run on Firefox browser.

We need to use a remote webdriver to perform tests on the remote machines. The sample code given below is to perform your tests on the remote machine with a Firefox gecko driver.

System.setProperty("webdriver.gecko.driver", "path of geckodriver.exe");

DesiredCapabilities capabilities=DesiredCapabilities.firefox();

capabilities.setCapability("marionette", true);

WebDriver driver = new FirefoxDriver(capabilities);

The above code is verified Firefox 47+ version and selenium-server-standalone-3.0.0-beta2 version.

Just update/add the following selenium dependency to your pom.xml: in your Maven project.

    <dependency>

        <groupId>org.seleniumhq.selenium</groupId>

        <artifactId>selenium-java</artifactId>

        <version>3.0.0-beta2</version>

    </dependency>

With the latest versions of Firefox, the most common issue people are facing is org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

Users can use Marionette (geckodriver), who are facing the above problem. Please do comment on your observation/issue with the versions (Geckodriver, Firefox and Selenium) that you have used.

UPDATE:
Users should be able to download Gecko Driver version 0.11 as it will resolve the issues related to windows32 bit.

Suraj  Kadav

Suraj Kadav

Web, Mobile & API Automation Testing, RPA

About the Author

Suraj is an ISTQB certified Automation Test Engineer at BugRaptors. He is responsible for Automation testing on Web and Mobile application and API Automation. He is also aware about RPA Automation using UiPath Automation Tool. He has working knowledge in Selenium Web driver(Web application), Appium(Android and iOS), API automation (Rest-Assured).

Interested in Our QA Services?

Get in touch with us to discuss your requirements

Interested in our QA services?

← View All Articles

Recent Articles

Explore more insights and articles from our experts

BugRaptors is one of the best software testing companies headquartered in India and the US, which is committed to catering to the diverse QA needs of any business. We are one of the fastest-growing QA companies; striving to deliver technology-oriented QA services, worldwide. BugRaptors is a team of 200+ ISTQB-certified testers, along with ISO 9001:2018 and ISO 27001 certifications.

flag

Corporate Office - USA

5858 Horton Street, Suite 101, Emeryville, CA 94608, United States
+1 (510) 371-9104
flag

Test Labs - India

2nd Floor, C-136, Industrial Area, Phase - 8, Mohali - 160071, Punjab, India
+91 77173-00289
flag

Corporate Office - India

52, First Floor, Sec-71, Mohali, PB 160071, India
flag

United Kingdom

97 Hackney Rd London E2 8ET
flag

Australia

Suite 4004, 11 Hassal St Parramatta NSW 2150
flag

UAE

Meydan Grandstand, 6th floor, Meydan Road, Nad Al Sheba, Dubai, U.A.E

Interested in our QA services?