Skip to content

Selenium helper library for interacting with HTML tables in a meaningful way

License

Notifications You must be signed in to change notification settings

gnboorse/selenium-table

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

selenium-table

Maven Central Javadocs MIT License

This is a Selenium helper library for interacting with HTML tables in a meaningful way.

Installation

Maven installation:

<dependency>
  <groupId>co.boorse</groupId>
  <artifactId>selenium-table</artifactId>
  <version>1.1</version>
</dependency>

Usage

First create a SeleniumTable object from an existing Selenium WebElement that points to a table.

// get the <table> element
WebElement tableElement = driver.findElement(By.xpath("//*[@id=\"table1\"]"));
// get an instance of SeleniumTable
SeleniumTable table = SeleniumTable.getInstance(tableElement);

Now you can iterate over the rows and columns using a foreach loop.

for (SeleniumTableRow row : table) {
  for (SeleniumTableCell cell : cells) {
    // do something with the cell contents, for example...
    System.out.println(cell.getText());
  }
}

You can also use a traditional for loop.

for (int i = 0; i < table.rowCount(); i++) {
  SeleniumTableRow row = table.get(i);
  for (int j = 0; j < row.cellCount(); j++) {
    SeleniumTableCell cell = row.get(j);
    System.out.println(cell.getText());
  }
}

You can get a specific cell at a row and column index.

SeleniumTableCell cell = table.get(0, 1); // get the cell in the first row, second column

If the HTML table has headers, SeleniumTable can deal with that too.

// get the header row (containing <th> elements)
if (table.hasHeaderRow()) {
  SeleniumTableRow headerRow = table.headerRow();
}

Additionally, SeleniumTable can locate cells using header or column names. Column names are case-insensitive.

// if there is a header cell containing the text "Header 1"
if (table.hasColumn("Header 1")) {
  // get all cells in the table below the heading "Header 1"
  List<SeleniumTableCell> header1Cells = table.getColumn("Header 1");
}

Release process

To release new versions of the library, follow the steps below:

mvn clean install
mvn release:prepare
mvn release:perform
git push -–tags
git push origin master

The release process used to deploy this library to Maven Central is described in this tutorial.

Note that GPG signing will not work unless you have the key.

About

Selenium helper library for interacting with HTML tables in a meaningful way

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages