package bvira.test.abstraction;
import java.util.List;
import org.openqa.selenium.WebElement;
public class HtmlPage {
private final DriverAdaptor driver;
public HtmlPage(DriverAdaptor driver) {
this.driver = driver;
}
public List<WebElement> findElementsById(String id) {
return getElements(("//.[@id='" + id + "']"));
}
public WebElement findElementByLinkText(String linkText) {
List<WebElement> anchors = findElementsByLinkText(linkText);
if (anchors.size() > 0) {
return anchors.get(0);
} else {
throw new ElementNotFoundException("Unable to find anchor with link text: " + linkText);
}
}
public List<WebElement> findElementsByLinkText(String linkText) {
return getElements(String.format("//a[text() = '%s']", linkText));
}
public WebElement findElementByPartialLinkText(String linkText) {
List<WebElement> anchors = findElementsByPartialLinkText(linkText);
if (anchors.size() > 0) {
return anchors.get(0);
} else {
throw new ElementNotFoundException("Unable to find anchor with partial link text: " + linkText);
}
}
public List<WebElement> findElementsByPartialLinkText(String linkText) {
return getElements(String.format("//a[contains(text(), '%s')]", linkText));
}
public WebElement findElementByXPath(String s) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public List<WebElement> findElementsByXPath(String xpath) {
return getElements(xpath);
}
public List<WebElement> findElementsByName(String name) {
return getElements("//input[@name='" + name + "']");
}
public List<WebElement> findElementsByTagName(String tagName) {
return getElements("//" + tagName);
}
public WebElement findElementById(String id) {
return driver.findElementById(id);
}
public WebElement getElementById(String id) {
WebElement element = findElementById(id);
if (element == null) {
throw new ElementNotFoundException(String.format("Element with id %s not found while looking for single element with id", id));
}
return element;
}
public String getTitle() {
return driver.getSingleElement("//title").getText();
}
@SuppressWarnings("unchecked")
public List<WebElement> getElements(String xpath) {
return driver.getElements(xpath);
}
}