def tree(name, *path): """Get underlying Tree() object. And eventually click path. If the accordion is not active, will be clicked. Attention! The object is 'live' so when it's obscured, it won't work! Usage: accordion.tree("Something").click_path("level 1", "level 2") accordion.tree("Something", "level 1", "level 2") # is the same Args: *path: If specified, it will directly pass these parameters into click_path of Tree. Otherwise it returns the Tree object. """ click(name) tree = Tree( sel.first_from( # Current tree "../../div[contains(@class, 'dhxcont_global_content_area')]//" "ul[@class='dynatree-container']", # Legacy tree "../../div[contains(@class, 'dhxcont_global_content_area')]//" "div[@class='containerTableStyle']//table[not(ancestor::tr[contains(@style,'none')])]", root=sel.element(locate(name)) ) ) if path: return tree.click_path(*path) else: return tree
def _root(): """ Returns the div element encapsulating whole tab strip as an entry point. Returns: WebElement """ return sel.first_from(_entry_div, _entry_ul)