代码之家  ›  专栏  ›  技术社区  ›  Peter Nixey Axe

如何让水豚找到HTML注释?

  •  0
  • Peter Nixey Axe  · 技术社区  · 8 年前

    我希望我的测试能够获取HTML 议论 这是我想测试的HTML块,但是当使用SimpleNode构建一个Capybara节点时,似乎要删除所有HTML注释。

    例如

    html = "<div>before <!– check –> after</div>"
    node = Capybara::Node::Simple.new(html)
    node.native.to_html
    # => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" 
    \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>
    <div>before  after</div></body></html>\n"
    

    文本部分, before after 已在HTML中完全删除。

    我如何保存它们以便在测试中检测它们?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Thomas Walpole    8 年前

    HTML注释需要两个 - 在<!-您所拥有的只是被解析为无效元素并被丢弃。

    html = "<div>before <!-- check --> after</div>"
    node = Capybara::Node::Simple.new(html)
    node.native.to_html
    => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><div>before <!-- check --> after</div></body></html>\n"