代码之家  ›  专栏  ›  技术社区  ›  Hirurg103 Tilendor

如何忽略切换到无头铬合金后的额外空白

  •  0
  • Hirurg103 Tilendor  · 技术社区  · 6 年前

    最近我把黄瓜测试从CapybaraWebkit换成了无头铬。现在很多功能都失败了

    期望找到“由J.Smith评论”中“由评论人评论”的文本[ 那里有两个空间 “J. Smith”

    有没有办法让水豚忽略多余的空白? 或者我需要在步骤定义中添加空白以使失败的测试变为绿色?

    更新1

    我有   标记中未按此方式规范化的空格

    <div>
      commented by
      &nbsp;
      <span>J. Smith</span>
    </div>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Thomas Walpole    6 年前

    我猜,在您从Capybara Webkit切换到Selenium和无头铬的同时,您也从Capybara 2.x切换到了3.x。Capybara 3.x的一个突破性变化是,它试图返回更多的空白,因为用户实际上会看到它。这意味着,如果标记中包含字符,它们不会与周围的空格一起折叠,因为浏览器不会这样做。你可以使用 normalize_ws 返回结果的选项更像2.x

    expect(page).to have_text('blah blah', normalize_ws: true)
    

    但是,如果您要在页面中添加字符时遇到困难,您可能需要检查文本是否按预期显示多个空格。