package com.bookstore; import com.algocrafts.pages.Page; import com.algocrafts.selectors.TagName; import com.algocrafts.selenium.Element; import com.google.common.base.Predicate; import org.openqa.selenium.support.ui.FluentWait; import static com.algocrafts.selectors.Xpath.CART_BUTTON; public class BookPage extends Page { private Predicate<BookPage> colorBecomeWhite = (BookPage b) -> cartButton().getCssValue("color").equals("rgba(255, 255, 255, 1)"); public BookPage(Page page) { super(page); } public void addToCart() { findElements(TagName.INPUT).filter((e) -> e.getAttribute("value").equals("add to cart")).findFirst().get().click(); new FluentWait<>(this).until(colorBecomeWhite) ; } public void secondAddToCart() { ((Element) findElements(TagName.INPUT).filter((e) -> e.getAttribute("value").equals("add to cart")).toArray()[1]).click(); new FluentWait<>(this).until(colorBecomeWhite); } public void gotoCart() { cartButton().click(); } public Element cartButton() { return untilFound(CART_BUTTON); } }