Book Image

Selenium Testing Tools Cookbook

5 (1)
Book Image

Selenium Testing Tools Cookbook

5 (1)

Overview of this book

This book is an incremental guide that will help you learn and use the advanced features of the Selenium toolset including the WebDriver API in various situations to build a reliable test automation. You start off by setting up the test development environment and gain tips on the advanced locater strategy and the effective use of the Selenium WebDriver API. After that, the use of design patterns such as data - driven tests and PageFactory are demonstrated. You will then be familiarised with extending Selenium WebDriver API by implementing custom tasks and setting up your own distributed environment to run tests in parallel for cross-browser testing. Finally, we give you some tips on integrating Selenium WebDriver with other popular tools and testing mobile applications. By the end of this book, you will have learned enough to solve complex testing issues on your own.
Table of Contents (21 chapters)
Selenium Testing Tools Cookbook Second Edition
About the Author
About the Reviewers

Working with WebTables

Similar to other element types that we have seen in earlier sections, an HTML table is represented as WebElement. However, there are no table-specific methods that are available with the WebElement interface.

While working with tables, we can find the rows and cells effectively by using a set of the By class methods. In this recipe, we will see how to get rows and columns in table.

How to do it...

Let's create a simple test that will print data from a table, as shown in the following code example:

public void testWebTable() {

  WebElement simpleTable = driver.findElement("items"));

  // Get all rows
  List<WebElement> rows = simpleTable.findElements(By.tagName("tr"));
  assertEquals(3, rows.size());

  // Print data from each row
  for (WebElement row : rows) {
    List<WebElement> cols = row.findElements(By.tagName("td"));
    for (WebElement col : cols) {
      System.out.print(col.getText() + "\t");