Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Capybara expect page to have content more than once

Does anybody know how to find if a page has a text more than once?

I know I can use

expect(page).to have_content("my-text") 

to check if text appears once. However, I need something like

expect(page).to have_content("my-text").twice 

(which doesn't work).

I'm using capybara v2.1.0.

like image 363
Tonatiuh Avatar asked Sep 17 '15 15:09

Tonatiuh


2 Answers

expect(page).to have_content("my-text", count: 2) 

will do what you want in modern versions of Capybara, not sure if that will work in 2.1 but worth trying (2.1 is over 2 years old now)

Update: In Capybara 3.19+ this can also now be written

expect(page).to have_content("my-text").twice 
like image 193
Thomas Walpole Avatar answered Oct 11 '22 18:10

Thomas Walpole


When you want the text to show at least 2 times (or 2 times and more) you have to use minimum instead of count.

expect(page).to have_text(/my-text/, minimum: 2)

like image 38
Panos Angel Avatar answered Oct 11 '22 16:10

Panos Angel