package com.ttdev.wicketpagetest; import java.util.ArrayList; import java.util.List; import org.openqa.selenium.WebElement; public class WicketWebElement { private WicketWebElement parent; private int depth; private WebElement element; private List<WicketWebElement> children; public WicketWebElement() { this(null); } public WicketWebElement(WebElement element) { this.children = new ArrayList<WicketWebElement>(); this.element = element; this.depth = (element == null ? 0 : element.getAttribute("wicketpath") .split("_").length); } public WicketWebElement getParent() { return parent; } public int getDepth() { return depth; } public void setParent(WicketWebElement parent) { this.parent = parent; } public void add(WicketWebElement child) { children.add(child); child.setParent(this); } public WicketWebElement findParent(WicketWebElement element) { if (parent == null) { return this; } if (this.depth == element.depth) { return parent; } if (this.depth < element.depth) { return this; } return parent.findParent(element); } public WebElement getElement() { return element; } public List<WicketWebElement> getChildren() { return children; } }