Skip to main content

Top 5 Selenium Webdriver Coding Tips to Improve Quality



SeleniumWebdriver is a powerful automation tool for testing web applications. It’s an open source library bundled with a rich set of features. Using it for testing a website is just like simulating the actions of a real user.

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 blog post, we’ve assembled some of the best and Top 5 Selenium Webdriver coding tips for software testers.




Tip-1: Best Method To Create Webdriver Instance.

It’s one of the most common Selenium Webdriver coding tips which you can’t avoid to use.

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

Latest Updated Selenium Topics 


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:

I wish the above post would have been able to hit the right chord with you. I’ve tried hard to touch upon all basic, advanced and premium Selenium Webdriver coding tips.

I believe these quickies would not only solve your problems but help in upgrading your Selenium Webdriver coding skills.


So, help me reach this post further to benefit every other individual who’s striving to learn automation. Don’t just leave without a like, share, or comment.

Selenium Tutorials for Beginners


Comments

Popular posts from this blog

Choosing Software Testing as a Career -- Complete Guide

Complete Guide: What is Software Testing? Why Software Testing? Types of Software Testing Careers Software Tester Skills Manual Testing Manual Testing Skill Set Manual Testing Payscale in India Automation Testing Automation Testing Tools List Automation Tester Skill Set Automation Tester Career Path Automation Tester Job Opportunities Read Here:  Why Choose Software Testing as your Career?  You may also Like: Simple Tips to be the Best Automation Tester Top 3 Common Mistakes Testers Make - Solutions How to be the Big Boss of Selenium Automation

Important Update from the National Software Testing Conference 2018..!

Hello friends, Happy to see you all after a gap! This time I came with an important & interesting information regarding Software Testing…! Here is the Kicker; Here I have listed down the latest update in software testing which every software testers must know about. Automation Testing Market – Forecast 2025 National Software Testing Conference 2018 Automation Testing Market Overview 2025 Also Read: Complete Guide to Choose Software Testing as Your Career All the information below is collected from the report of the recent National Level Software Testing Conference 2018 held in London. Automation Testing Market Report provides thorough backdrop investigation of Automation Testing business, with an evaluation of the previous years. The Automation Testing Market Reports provides data on Automation Testing patterns and improvements, and target business sectors and materials, limits and advancements.  The report broadly provides the marke

Top 4 Software Tester Job vacancies for this week - Apply Now

Hello friends, Here I have shared Top 4 Software Tester Job vacancies from Top MNCs, Please make use of it and also share with your buddies. FIS Hiring Functional Tester: Technical requirements: Essential: UNIX (User level), SQL, Testing ability, Office software, Shell scripting.Desirable Perl, C, Informix, XML, J2EE, Websphere (deployment), Mastercard/Visa/card payments knowledge, Software development lifecycle Apply Now TCS Hiring Software Testers: Education : Any Graduate / Post Graduate Shifts : Flexible in any shifts    Job Function:  IT INFRASTRUCTURE SERVICES Role: Analyst Job Id: 118845 Desired Skills Manual Testing | Selenium Apply Now Amazon Hiring Software Test Engineer: BASIC QUALIFICATIONS Bachelor’s degree in Computer Science, Computer Engineering or related technical field 4+ years of experience in software development and testing in Java, C++ or C# Computer Science fundamentals in data structures