Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Selenium Testing Tools Cookbook Second Edition

You're reading from   Selenium Testing Tools Cookbook Second Edition Over 90 recipes to help you build and run automated tests for your web applications with Selenium WebDriver

Arrow left icon
Product type Paperback
Published in Oct 2015
Publisher
ISBN-13 9781784392512
Length 374 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
UNMESH GUNDECHA UNMESH GUNDECHA
Author Profile Icon UNMESH GUNDECHA
UNMESH GUNDECHA
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Getting Started 2. Finding Elements FREE CHAPTER 3. Working with Elements 4. Working with Selenium API 5. Synchronizing Tests 6. Working with Alerts, Frames, and Windows 7. Data-Driven Testing 8. Using the Page Object Model 9. Extending Selenium 10. Testing HTML5 Web Applications 11. Behavior-Driven Development 12. Integration with Other Tools 13. Cross-Browser Testing 14. Testing Applications on Mobile Browsers Index

Setting up ChromeDriver for Google Chrome

Similar to Internet Explorer, in order to execute test scripts on the Google Chrome browser, we need to use ChromeDriver and a standalone ChromeDriver executable.

ChromeDriver is maintained by the Google Chromium team. You can find more information at https://sites.google.com/a/chromium.org/chromedriver/.

Let's setup ChromeDriver and create a test for testing the search feature on Google Chrome.

Getting ready

You need to download ChromeDriver from https://sites.google.com/a/chromium.org/chromedriver/downloads.

How to do it...

  1. After downloading the ChromeDriver server, unzip and copy the file to the driver's directory in the src/test/resources folder, as shown in the following screenshot:
    How to do it...

    Note

    On Linux and Mac operating systems, the chromdriver file needs to be made executable using the chmod +x command filename or the chmod 775filename command.

  2. Add a new test and name it as GoogleSearchTestOnChrome.java, and add the following code:
    package com.secookbook.examples.chapter01;
    
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.By;
    import org.openqa.selenium.support.ui.ExpectedCondition;
    import org.openqa.selenium.support.ui.WebDriverWait;
    import org.junit.*;
    
    import static org.junit.Assert.*;
    
    public class GoogleSearchTestOnChrome {
    
      private WebDriver driver;
    
      @Before
      public void setUp() {
        System.setProperty("webdriver.chrome.driver",
            "./src/test/resources/drivers/chromedriver.exe");
    
        // Launch Chrome
        driver = new ChromeDriver();
        // Maximize the browser window
        driver.manage().window().maximize();
        // Navigate to Google
        driver.get("http://www.google.com");
      }
    
      @Test
      public void testGoogleSearch() {
        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));
    
        // Enter something to search for
        element.sendKeys("Selenium testing tools cookbook");
    
        // Now submit the form. WebDriver will find
        // the form for us from the element
        element.submit();
    
        // Google's search is rendered dynamically with JavaScript.
        // Wait for the page to load, timeout after 10 seconds
        new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {
          public Boolean apply(WebDriver d) {
            return d.getTitle().toLowerCase()
                .startsWith("selenium testing tools cookbook");
          }
        });
    
        assertEquals("Selenium testing tools cookbook - Google Search",
            driver.getTitle());
      }
    
      @After
      public void tearDown() throws Exception {
        // Close the browser
        driver.quit();
      }
    }

    Execute this test and you will see a Chrome window being launched and all the steps executed.

How it works...

ChromeDriver is a standalone server executable that implements WebDriver's JSON-wire protocol and works as a glue between the test script and Google Chrome, as shown in the following diagram:

How it works...

Note

For more information on ChromeDriver please visit https://code.google.com/p/selenium/wiki/ChromeDriver.

The tests should specify the path of the ChromeDriver executable before creating the instance of Chrome. This is done by setting the webdriver.chrome.driver property as shown in the following code:

System.setProperty("webdriver.chrome.driver","src/test/resources/drivers/chromedriver.exe");
    "src/test/resources/drivers/chromedriver.exe");

We can also specify a path externally through the –Dwebdriver.chrome.driver option using Maven command line options. In this case, we don't need to set up this property in test; we need to create an instance of ChromeDriver class that will connect to the ChromeDriver Server, as shown in the following code. It will then run the Selenium commands that we will call by using various WebDriver and WebElement methods from the test script:

driver = new ChromeDriver();
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image