package com.daugherty; import com.algocrafts.locators.ElementLocator; import com.algocrafts.pages.Page; import com.algocrafts.selenium.Element; import com.algocrafts.selenium.Locator; import org.openqa.selenium.By; import java.util.function.Supplier; import static org.openqa.selenium.By.linkText; public class MenuGroupLocator implements Locator<Page, Element> { private final String headText; private final Supplier<By> id; public MenuGroupLocator(String menuGroup, Supplier<By> id) { this.headText = menuGroup; this.id = id; } public Element locate(Page page) { return new ElementLocator<Page>(id) .andThen(new ElementLocator<>(() -> linkText(headText))).locate(page); } @Override public String toString() { return "[" + headText + "]"; } }