def handle_starttag(self, tag, attrs): """ Handle an element starttag. Opens an element, and prepares to add children if it's not self closing :param tag: Element tag :param attrs: Element attributes """ element = el.Element(tag, attrs_to_dict(attrs)) if self.cur is None: self.heads.append(element) else: self.cur.add_child(element) if tag not in el.Element.SELF_CLOSING: self.cur = element
def test_element_children(): node1 = element.Element("div", {}) node2 = element.Element("p", {}) node1.add_child(node2) assert node2 in node1.child_nodes assert node2.parent == node1
def test_element_outerhtml(): node1 = element.Element("div", {}) node2 = element.Element("p", {}) node1.add_child(node2) assert node1.outerhtml == "<div>\n <p>\n </p>\n</div>" assert node2.outerhtml == "<p>\n</p>"
def test_element_innerhtml(): node1 = element.Element("div", {}) node2 = element.Element("p", {}) node1.add_child(node2) assert node1.innerhtml == "<p>\n</p>" assert node2.innerhtml == ""
def test_element_innertext(): node1 = element.Element("p", {}) assert node1.innertext == ""
def test_element_depth(): node1 = element.Element("div", {}) node2 = element.Element("p", {}) node1.add_child(node2) assert node1.depth == 0 assert node2.depth == 1
def test_init_element(): node = element.Element("p", {}) assert node.tag == "p" assert node._attrs == {}