DEV Community

n350071πŸ‡―πŸ‡΅
n350071πŸ‡―πŸ‡΅

Posted on • Edited on

capybara find.text method ignore newline (convert to a space)

πŸ”— Parent Note

πŸ€” Situation

The find method automatically convert the '\n' to a space, so test will be false.

target = 'hello\nworld'

p target
#=> "hello\\nworld"

find('div.target').text
#=> "hello world"

expect(find('div.target').text).to eq target
#=> false πŸ˜…

πŸŽ‰ Solution

There is Capybara::RSpecMatchers#have_content method.

  • ⭕️ It judges the page or the node has the text.
  • ❌ It ignores HTML tag, so if you want to test include HTML tag, you shouldn't use this.
expect(find('div.target')).to have_content(target)

πŸ“š Capybara::RSpecMatchers

Top comments (0)