package com.epam.jdi.uitests.testing.unittests.pageobjects.pages; import com.epam.jdi.uitests.core.interfaces.common.ILabel; import com.epam.jdi.uitests.core.interfaces.common.IText; import com.epam.jdi.uitests.core.interfaces.complex.ICheckList; import com.epam.jdi.uitests.core.interfaces.complex.IComboBox; import com.epam.jdi.uitests.core.interfaces.complex.IDropDown; import com.epam.jdi.uitests.testing.unittests.enums.Colors; import com.epam.jdi.uitests.testing.unittests.enums.Metals; import com.epam.jdi.uitests.testing.unittests.enums.Nature; import com.epam.jdi.uitests.testing.unittests.pageobjects.sections.Summary; import com.epam.jdi.uitests.web.selenium.elements.base.Element; import com.epam.jdi.uitests.web.selenium.elements.common.Button; import com.epam.jdi.uitests.web.selenium.elements.common.CheckBox; import com.epam.jdi.uitests.web.selenium.elements.common.Label; import com.epam.jdi.uitests.web.selenium.elements.common.Text; import com.epam.jdi.uitests.web.selenium.elements.complex.ComboBox; import com.epam.jdi.uitests.web.selenium.elements.complex.Dropdown; import com.epam.jdi.uitests.web.selenium.elements.composite.WebPage; import org.openqa.selenium.By; import org.openqa.selenium.support.FindBy; /** * Created by Maksim_Palchevskii on 8/17/2015. */ public class MetalsColorsPage extends WebPage { @FindBy(id = "summary-block") public Summary summary; @FindBy(id = "calculate-button") public Label calculate; @FindBy(id = "calculate-button") public Button calculateButton = new Button() { @Override protected String getTextAction() { return getWebElement().getText(); } }; @FindBy(id = "calculate-button") public ILabel calculateLabel; public IDropDown<Colors> colors = new Dropdown<>(By.cssSelector(".colors .filter-option"), By.cssSelector(".colors li span")); @FindBy(css = ".summ-res") public IText calculateText; @FindBy(css = "#elements-checklist label") public ICheckList<Nature> nature; @FindBy(xpath = "//*[@id='elements-checklist']//*[label[text()='%s']]/label") public ICheckList<Nature> natureTemplate; @FindBy(xpath = "//*[@id='elements-checklist']//*[text()='Water']") public CheckBox cbWater = new CheckBox() { @Override protected boolean isCheckedAction() { return new Element(By.xpath("//*[@id='elements-checklist']//*[*[text()='Water']]/input")) .getInvisibleElement().getAttribute("checked") != null; } }; public IComboBox<Metals> comboBox = new ComboBox<Metals>(By.cssSelector(".metals .caret"), By.cssSelector(".metals li span"), By.cssSelector(".metals input")) { @Override protected String getTextAction() { return new Text(By.cssSelector(".metals .filter-option")).getText(); } }; }