示例#1
0
    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
示例#2
0
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
示例#3
0
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>"
示例#4
0
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 == ""
示例#5
0
def test_element_innertext():
    node1 = element.Element("p", {})
    assert node1.innertext == ""
示例#6
0
def test_element_depth():
    node1 = element.Element("div", {})
    node2 = element.Element("p", {})
    node1.add_child(node2)
    assert node1.depth == 0
    assert node2.depth == 1
示例#7
0
def test_init_element():
    node = element.Element("p", {})
    assert node.tag == "p"
    assert node._attrs == {}