### Question:
Table extends AbstractElement { public int getNumberOfColumns() { List<WebElement> cells; String xPath = getXPathBase() + "tr"; List<WebElement> elements = HtmlElementUtils.locateElements(xPath); if (elements.size() > 0 && getDataStartIndex() - 1 < elements.size()) { cells = elements.get(getDataStartIndex() - 1).findElements(By.xpath("td")); return cells.size(); } return 0; } Table(String locator);  Table(String locator, String controlName);  Table(ParentTraits parent, String locator);  Table(String locator, String controlName, ParentTraits parent); synchronized int getDataStartIndex(); int getNumberOfRows(); int getNumberOfColumns(); int getRowIndex(String[] searchKeys); String getValueFromCell(int row, int column); void clickLinkInCell(int row, int column); String getXPathBase(); String getRowText(int rowIndex); void checkCheckboxInCell(int row, int column); void uncheckCheckboxInCell(int row, int column);  }### Answer:
@Test(groups = { "browser-tests" }) @WebTest public void tableTestGetColumnCounts() { Grid.driver().get(TestServerUtils.getTestEditableURL()); assertTrue((testTable.getNumberOfColumns() == 3), "Validate getNumberOfColumns method"); }