package com.epam.jdi.uitests.testing.unittests.pageobjects.pages; import com.epam.jdi.uitests.testing.unittests.enums.ColumnHeaders; import com.epam.jdi.uitests.testing.unittests.pageobjects.EpamJDISite; import com.epam.jdi.uitests.testing.unittests.pageobjects.composite.DynamicTable; import com.epam.jdi.uitests.web.selenium.elements.common.Button; import com.epam.jdi.uitests.web.selenium.elements.complex.DropList; import com.epam.jdi.uitests.web.selenium.elements.composite.WebPage; import org.openqa.selenium.By; import org.openqa.selenium.support.FindBy; /** * Created by Natalia_Grebenshchik on 10/14/2015. */ public class DynamicTablePage extends WebPage { @FindBy(css = ".table-delete") public DynamicTable dynamicTable; @FindBy(css = ".dropdown-toggle[type=button]") public Button dropDownButton; public ColumnDropList<ColumnHeaders> tableColumnDD = new ColumnDropList<ColumnHeaders>( By.xpath("*//ul[contains(@class,'dropdown-menu inner selectpicker')]"), By.xpath("*//ul[contains(@class,'dropdown-menu inner selectpicker')]/li")) { @Override public void selectByName(String name) { EpamJDISite.dynamicTablePage.dropDownButton.click(); EpamJDISite.dynamicTablePage.tableColumnDD.select(name); EpamJDISite.dynamicTablePage.dropDownButton.click(); } }; @FindBy(xpath = "*//button[text()='Reestablish']") public Button ReestablishBtn; @FindBy(xpath = "*//button[text()='Apply']") public Button applyBtn; public abstract class ColumnDropList<ColumnHeaders extends Enum> extends DropList<ColumnHeaders> { public ColumnDropList(By xpath, By xpath1) { super(xpath, xpath1); } public abstract void selectByName(String name); } public Boolean addColumn(ColumnHeaders columnHeader) { this.tableColumnDD.selectByName(columnHeader.value); this.applyBtn.click(); return true; } public Boolean deleteColumn(ColumnHeaders columnHeader) { this.tableColumnDD.selectByName(columnHeader.value); this.applyBtn.click(); return true; } }