How to use WebDriver Backed Selenium

Thursday, March 1, 2018
Avatar

WebDriver Backed Selenium

The Java version of Webdriver provides an implementation of the Selenium-RC API. This means that you can use the underlying WebDriver technology using the Selenium-RC API. This is primarily provided for backwards compatiblity. It allows those who have existing test suites using the Selenium-RC API to use WebDriver under the covers. It’s provided to help ease of the migration path to Selenium-Web driver.
Sample Backed web driver script looks like this:

package webone;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.thoughtworks.selenium.SeleneseTestCase;

import com.thoughtworks.selenium.Selenium;
@SuppressWarnings("deprecation")
public class BackedSelenium extends SeleneseTestCase {
//web driver ??here we are declaring the browser
WebDriver driver = new FirefoxDriver();
@Before
public void setUp() throws Exception {
String baseUrl = "https://www.google.co.in/";
selenium = new WebDriverBackedSelenium(driver, baseUrl);
}

@TEST
public void testBackedSelenium() throws Exception {
//This is using selenium
selenium.open("/");
selenium.click("id=gbi5");
selenium.click("id=gmlas");
selenium.waitForPageToLoad("30000");
selenium.type("name=as_q", "test");
//Here we are using Webdriver
driver.findElement(By.id("as_oq1")).sendKeys("naga");

driver.findElement(By.id("as_oq2")).sendKeys("Webdriver");
Thread.sleep(5000);
}

@After
public void tearDown() throws Exception {
selenium.stop();
}
}

By using the above format, you can use both the Selenium API and Web driver API…

Run WebDriver Scripts in Chrome

We run the Selenium Webdriver programs in Google Chrome web browser to perform automation testing.
Below theory explains you how to run your webdriver script in google chrome..
Firefox Browser:
driver=new FirefoxDriver();---it will work and will launch your firefox browser,
Google Chrome:
driver= new Chromedriver() --- it will throw an error.
Error:
FAILED CONFIGURATION: @BeforeClass beforeClass
java.lang.IllegalStateException:
The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information.
To overcome this, we need to download the chrome driver.exe and we have to specify the path of a chrome driver in the script
Download path:
https://code.google.com/p/chromedriver/downloads/list take the latest exe file.

Checkout Selenium Interview Questions

Save the chrome driver in a folder and you need to specify the path of a driver in your web driver script.
Below is the Sample code:

package testng;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class ChromedriverTest {
111
public WebDriver driver;

@BeforeClass
public void beforeClass() {
// Create chrome driver instance...
System.setProperty("webdriver.chrome.driver", "C:xxxJarchromedriver.exe");

driver=new ChromeDriver();
}

@TEST
public void testChromedriverTest() throws Exception {
driver.navigate().to("https://bing.com");
Thread.sleep(5000);
}

@AfterClass
public void afterClass() {
driver.quit();

}
}

Use the above code for your script which will run in Google chrome.

6 Replies
Thursday, March 1, 2018
Avatar
re: azharuddin Thursday, March 1, 2018

Thanks for posting the article, that is very useful.

Regards

Adam

Thursday, February 25, 2021
Avatar
re: azharuddin Thursday, March 1, 2018

I think this info will also help Selenium with Python Training learners.

Saturday, March 13, 2021
Avatar
re: azharuddin Thursday, March 1, 2018

The Java version of Webdriver provides an implementation of the Selenium-RC API. This means that you can use the underlying WebDriver technology using the Selenium-RC API. This is primarily provided for backward compatibility. It allows those who have existing test suites using the Selenium-RC API to use WebDriver under the covers. It’s provided to help ease the migration path to Selenium-Web driver.Sample Backed web driver script looks like this:

package webone;

 

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebDriverBackedSelenium;

import org.openqa.selenium.firefox.FirefoxDriver;

import com.thoughtworks.selenium.SeleneseTestCase;

import com.thoughtworks.selenium.Selenium;

@SuppressWarnings("deprecation")

public class BackedSelenium extends SeleneseTestCase {

//web driver ??here we are declaring the browser

WebDriver driver = new FirefoxDriver();

@Before

public void setUp() throws Exception {

String baseUrl = "https://www.google.co.in/";

selenium = new WebDriverBackedSelenium(driver, baseUrl);

}

@TEST

public void testBackedSelenium() throws Exception {

//This is using selenium

selenium.open("/");

selenium.click("id=gbi5");

selenium.click("id=gmlas");

selenium.waitForPageToLoad("30000");

selenium.type("name=as_q", "test");

//Here we are using Webdriver

driver.findElement(By.id("as_oq1")).sendKeys("naga");

driver.findElement(By.id("as_oq2")).sendKeys("Webdriver");

Thread.sleep(5000);

}

@After

public void tearDown() throws Exception {

selenium.stop();

}

}

By using the above format, you can use both the Selenium API and Web driver API.

Monday, May 31, 2021
Avatar
re: azharuddin Thursday, March 1, 2018

If you're not already using Selenium Remote Control (RC), you want to use the WebDriver option.

Longer answer: RC is the older 1.0 version of Selenium. WebDriver is the newer 2.0 version. WebDriver-Backed is a middle ground, allowing you to use the old RC API through the new WebDriver implementation.

You can switch between the options in the IDE and see for yourself the different tests that are generated.

More info at the Selenium Classes in Pune

Monday, September 19, 2022
Avatar
re: snahta Monday, May 31, 2021

As you probably know, WebDriverBackedSelenium provides Selenium 1. x (Selenium RC) compatible interfaces but it's 100% implemented using WebDriver.

There are many downsides to using it, for example - WebDriverBackedSelenium is significantly slower than using WebDriver APIs directly. But let's stick with the original question :)

With the release of Selenium 3.0, it was decided to delete the original Selenium Core implementation. For the one that has used the old RC interfaces, the Selenium team has provided an alternative implementation that’s backed by WebDriver which is the same as WebDriverBackedSelenium which has been available as part of Selenium 2 since its release.

This implementation is the Selenium Leg Rc. In order to use it, just include the dependency in your project, for example, using Maven:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-leg-rc</artifactId>
    <version>3.0.1</version>
</dependency>

And now you will be able to work as you worked until now, Learn Selenium 3.0 with WebDriverBackedSelenium.

Monday, September 19, 2022
Avatar
re: azharuddin Thursday, March 1, 2018

This means that you can use the underlying WebDriver technology using the Selenium-RC API. This is primarily provided for backward compatibility. It allows those who have existing test suites using the Selenium-RC API to use WebDriver under the covers.

It’s provided to help ease the migration path to the Selenium-Web driver.
Sample Backed web driver script looks like this:
 

package webone;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.thoughtworks.selenium.SeleneseTestCase;

import com.thoughtworks.selenium.Selenium;
@SuppressWarnings("deprecation")
public class BackedSelenium extends SeleneseTestCase {
//web driver ??here we are declaring the browser
WebDriver driver = new FirefoxDriver();
@Before
public void setUp() throws Exception {
String baseUrl = "https://www.google.co.in/";
selenium = new WebDriverBackedSelenium(driver, baseUrl);
}

@TEST
public void testBackedSelenium() throws Exception {
//This is using selenium
selenium.open("/");
selenium.click("id=gbi5");
selenium.click("id=gmlas");
selenium.waitForPageToLoad("30000");
selenium.type("name=as_q", "test");
//Here we are using Webdriver
driver.findElement(By.id("as_oq1")).sendKeys("naga");

driver.findElement(By.id("as_oq2")).sendKeys("Webdriver");
Thread.sleep(5000);
}

@After
public void tearDown() throws Exception {
selenium.stop();
}
}

This is all about WebDriver Backed Selenium. Learn basic and advanced levels of selenium training are available for online training.

Statistics
  • Started: Thursday, March 1, 2018
  • Last Reply: Monday, September 19, 2022
  • Replies: 6
  • Views: 13023