package org.richfaces.showcase.contextMenu.page; import java.util.List; import org.jboss.arquillian.graphene.Graphene; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.ExpectedCondition; import org.richfaces.fragment.contextMenu.RichFacesContextMenu; public class TableContextMenuPage { @FindBy(css = ".rf-edt-b > div > table > tbody > tr > td:nth-of-type(2) tr") private List<WebElement> prices; @FindBy(className = "rf-ctx-lbl") private RichFacesContextMenu contextMenu; @FindBy(css = "#popupContent tr:nth-of-type(3) input") private WebElement priceFromPopup; @FindBy(css = "input[type='button']") private WebElement closeButton; private static final String CLASS_OF_SELECTED_ROW = "rf-edt-r-act"; public ExpectedCondition<Boolean> getWaitConditionOnSelectingRow(final WebElement row) { return new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver arg0) { return row.getAttribute("class").contains(CLASS_OF_SELECTED_ROW); } }; } public void closePopup() { closeButton.click(); Graphene.waitModel().withMessage("The popup was not closed in a given timeout!") .until().element(closeButton).is().not().visible(); } public List<WebElement> getPrices() { return prices; } public void setPrices(List<WebElement> prices) { this.prices = prices; } public RichFacesContextMenu getContextMenu() { return contextMenu; } public WebElement getPriceFromPopup() { return priceFromPopup; } public void setPriceFromPopup(WebElement priceFromPopup) { this.priceFromPopup = priceFromPopup; } public WebElement getCloseButton() { return closeButton; } public void setCloseButton(WebElement closeButton) { this.closeButton = closeButton; } }