Looking for something in particular?

Understanding Table Mapping in Page Objects

Access world-class customer support at the Provar Success Portal

If you face any issues when mapping a particular table, please get in touch with us and we would be happy to help. To raise a case, simply log into the Provar Success Portal and click View/Raise Case. Providing ongoing support is part of our promise to help you deliver robust, scalable, and repeatable testing to achieve release agility, drive down system errors, and get the maximum return on your Salesforce investment. Please contact us for more information.


Once you have mapped a table within a page object, the only way to amend it is to update the Java generated in the page object.

Syntax explained

The column XPath is relative to the table and row XPaths.  

   <Table Xpath><Data Row XPath> and will start with //

Configure a table manually in your page object

Step 1: After mapping your table, Test Builder will add this import to the top of the page object.

import com.provar.core.model.ui.api.UiFacet;

Step 2: Add the following to the class.

    public static class Example {

        @FindBy(xpath = "//td[1]")
        public WebElement Company;

    @FacetFindBys(value = {
            @FacetFindBy(findBy = @FindBy(xpath = "tbody/tr"), facet = UiFacet.DATA_ROWS),
            @FacetFindBy(findBy = @FindBy(xpath = "tbody/tr[1]"), facet = UiFacet.HEADER_ROW) })
    @FindBy(xpath = "(//table[@id='customers'])[1]")
    @PageTable(firstRowContainsHeaders = false, row = Example.class)
    public List<Example> example;

Manual mapping process

Using the table in the following website, we will attempt to determine the XPaths required to map a table.

Look at the Custom table mapping page for an overview of the table mapping fields. If Provar cannot determine the boundaries of the Table, Rows, and Header for you, it is necessary to perform this task manually by inspecting the web page under test.  

For this example, we will use a simple webpage:

Step 1: Inspect the web page using right-click.

Step 2: Select an element in the table by clicking Select Element.

Step 3: Then click the first cell in the table.

Step 4: Ask Chrome to provide an XPath for the table by right-clicking on the table element.

From here you can determine the relative XPath for the rows.

Step 5: To arrive at a row, you must provide tbody/tr.

Step 6: Once the table is mapped, you can add columns manually. In the example above, the relative XPath for the first column is td[1], and you would add “//td[1]” to your page object.

Review Provar on G2
Documentation library

Trying to raise a case with our support team?

We use cookies to better understand how our website is used so we can tailor content for you. For more information about the different cookies we use please take a look at our Privacy Policy.

Scroll to Top