You need to enable JavaScript to run this app. Ruby中使用RSpec做Capybara测试匹配h1内容失败如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中使用RSpec做Capybara测试匹配h1内容失败如何解决?

错误原因
  • have_content 匹配的是页面渲染后用户可见的纯文本内容,不会匹配HTML源码中的标签、属性等源码字符,你传入带<h1>标签的字符串自然无法匹配到对应内容。
  • Capybara处理文本时默认会将换行、连续多空格等空白字符合并为单个空格,直接传入带换行、缩进的源码文本也会因为格式不匹配导致断言失败。
正确写法

你需要先通过选择器定位到h1.glow-header元素,再对该元素的内容做断言,两种常用写法:

  1. 普通匹配(自动合并空白字符,适配大多数场景)
expect(page).to have_css('h1.glow-header', text: 'Galaxy Far, Far Away? Quick Trip to Mars? Pianeta has you covered.')
  1. 精确匹配空白(需要保留换行、空格格式时开启normalize_ws: false)
expect(page).to have_css('h1.glow-header', text: "Galaxy Far, Far Away? Quick Trip to Mars?\n    Pianeta has you covered.", normalize_ws: false)

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 18:42:02