Selenium WebDriver is a powerful automation tool for testing web applications. It’s an open source library bundled with a rich set of features. As we already discussed in our previous article about Selenium Webdriver Architecture.

Selenium WebDriver

All these abilities together make it a perfect tool for automation. But you need proper guidance to get the best out of it. In this Selenium tutorial, we’ve assembled some of the best and Top 5 Selenium Webdriver coding tips for software testers.

Recommended Reading: Whats New in Selenium 3? 

Tip-1: Best Method To Create Webdriver Instance.

A common Selenium Webdriver coding tips which every tester must know and also you can’t avoid.

1.1- Use the <Factory> design pattern to create objects based on browser type.

1.2- Extend the below code or use it as is in your projects.

public class DriverFactory {

private WebDriver driver = null;

public static WebDriver getBrowser(String browserType) {

if (driver == null) {

if (browserType.equals(“Firefox”))

{

driver = new FirefoxDriver();

} else if (browserType.equals(“Chrome”))

{

driver = new ChromeDriver();

} else if (browserType.equals(“IE”))

{

driver = new InternetExplorerDriver();

}

}

return driver;

}

Tip-2: Simple Method To Check If An Element Exists.

2.1- You should use <findElements> instead of <findElement>.

2.2- <findElements> returns an empty list when it doesn’t find any matching elements.

2.3- You can use the code given below to check for the presence of an element.

Boolean isItemPresent = driver.findElements(By.testLocator).size() > 0

Tip-3: Avoid Exception While Checking An Element Exists.

3.1- The code in the previous tip may lead to <NoSuchElementException>. Also, it could be a bit slower in some cases.

3.2- Webdriver has a Fluent wait feature. We can use it to check the element.

3.3- It gives the ability to ignore any exception and allows to test the <WebElement>. Let’s see how to achieve what’s said here.

/* 1- Test if an element exists on the page.

2- Ignore the no element found exception.

*/

By element = By.xpath(“.//*[@id=’demo’]/p”);

Wait < WebDriver > wait = new FluentWait < > (driver)

.withTimeout(60, TimeUnit.SECONDS)

.pollingEvery(5, TimeUnit.SECONDS)

.ignoring(NoSuchElementException.class);

wait.until(ExpectedConditions

.presenceOfElementLocated(element));

Tip-4: Wait For A Page With JavaScript(JS) To Load.

4.1- It’s quite common working with pages bloated with JavaScript. The challenge is how to make sure the page has finished loading.

4.2- Here, we are giving a solution that works. This code will help you setting

wait.until(new Predicate < WebDriver > () {

@Override

public Boolean apply(WebDriver driver) {

return ((JavascriptExecutor) driver).executeScript(“return document.readyState”).equals(“complete”);

}

});

Tip-5: Take A Screenshot Using Webdriver.

5.1- It’s easy to capture a screenshot of any error using Webdriver.

5.2- Use the below Webdriver code. It saves the screenshot to the current project directory.

WebDriver driver = new FirefoxDriver();

driver.get(“http://www.techBeamers.com/”);

// Store the screenshot in current project dir.

String screenShot = System.getProperty(“user.dir”) + “\\screenShot.png”;

// Call Webdriver to click the screenshot.

File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

// Save the screenshot.

FileUtils.copyFile(scrFile, new File(screenShot));

Footnote:

The above Selenium article from our series of free Selenium tutorials had explained about the advanced and premium Selenium Webdriver coding tips. This tutorial not solve the problem but also help you to enhance your Selenium Webdriver coding skills.

Follow our Free Selenium Tutorials series to learn from basics.

Top Trending Tutorials: