package br.com.caelum.seleniumdsl.webdriver.table.layout; import java.util.logging.Logger; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import br.com.caelum.seleniumdsl.table.Table; class WebDriverTableLayoutHelper { private static final Logger log = Logger.getLogger(WebDriverTableLayoutHelper.class.getName()); private final WebDriver webDriver; private final String id; private final String type; WebDriverTableLayoutHelper(final WebDriver webDriver, final String id, final String type) { this.webDriver = webDriver; this.id = id; this.type = type; } int getRowCount() { return countXPath("/*/tr"); } int countXPath(final String expr) { return webDriver.findElements(By.xpath("//table[@" + type + "='" + id + "']" + expr)).size(); } String getXPathText(final String expr) { try { return webDriver.findElement(By.xpath("//table[@" + type + "='" + id + "']" + expr)).getText(); } catch (final Exception e) { log.info(e.getMessage()); } return null; } boolean contains(final Table table, final String col, final String content) { for (int i = 1; i < table.getRowCount(); i++) { if (table.cell(i, col) .contains(content)) { return true; } } return false; } public WebElement getTableElementByXPathText(final String expr) { try { return webDriver.findElement(By.xpath("//table[@" + type + "='" + id + "']" + expr)); } catch (final Exception e) { log.info(e.getMessage()); } return null; } }