package bvira.test.abstraction; import org.openqa.selenium.WebElement; import org.openqa.selenium.By; import java.util.List; import java.util.ArrayList; public class Link { private final WebElement htmlElement; public Link(WebElement htmlElement) { this.htmlElement = htmlElement; } public String getHref() { return htmlElement.getAttribute("href"); } public String getValue() { return htmlElement.getValue(); } public String getClassName() { return htmlElement.getAttribute("class"); } public String getText() { return htmlElement.getText(); } public String getTitle(){ return htmlElement.getAttribute("title"); } public boolean isInclude() { return cssClassContains("include"); } private boolean cssClassContains(String className) { String classValue = htmlElement.getAttribute("class"); if (classValue != null) { return classValue.contains(className); } return false; } public Boolean isDisabled() { return cssClassContains("disabled"); } public Boolean isDisplayNone() { return cssClassContains("display: none"); } public boolean isVisible() { return !htmlElement.getAttribute("class").contains("hidden"); } public static List<Link> create(List<WebElement> elementList) { List<Link> links = new ArrayList<Link>(); for (WebElement webElement : elementList) { links.add(new Link(webElement)); } return links; } public String getRel() { return htmlElement.getAttribute("rel"); } public String getTarget() { return htmlElement.getAttribute("target"); } public String href() { return htmlElement.getAttribute("href"); } public String getId() { return htmlElement.getAttribute("id"); } public WebElement getTrackingSpan(){ return htmlElement.findElement(By.xpath("./following-sibling::*[@class = 'tracking']")); } }