package org.lightadmin.component; import org.lightadmin.SeleniumContext; import org.lightadmin.data.Domain; import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; public class DashboardStatisticsComponent extends StaticComponent { @FindBy( xpath = "//table[@id='dashboard-statistics']" ) private WebElement statisticsTable; public DashboardStatisticsComponent( SeleniumContext seleniumContext ) { super( seleniumContext ); } public boolean domainLinkDisplayed( Domain domain ) { try { return statisticsTable.findElement( By.linkText( domain.getLinkText() ) ).isDisplayed(); } catch ( NoSuchElementException e ) { return false; } } public int getDomainLinksCount() { return statisticsTable.findElements( By.xpath( "//tr/td/a[@class='domain-link']" ) ).size(); } public int getDomainRecordsCount( Domain domain ) { return Integer.parseInt( domainStatisticsRow( domain ).findElement( By.className( "record-count" ) ).getText() ); } public int getDomainRecordsChange( Domain domain ) { return Integer.parseInt( domainStatisticsRow( domain ).findElement( By.className( "record-count-change" ) ).getText() ); } private WebElement domainStatisticsRow( Domain domain ) { return statisticsTable.findElement( By.xpath( "//tr[@id='stat-row-" + domain.getLinkText() + "']" ) ); } }