test rails example and ruby-on-rails testing cucumber capybara

ruby-on-rails - rails - capybara testing example



Capibara, encontrando dentro de un elemento css (4)

Capybara''s in matcher solo coincide con el primer resultado, así que si tienes varias etiquetas h2 , solo se verá en el primero.

En su lugar, intente have_css con la opción :text .

page.should have_css("#table", :text => "[Name]") page.should have_css(''h2'', :text => ''stuff'')

Estoy trabajando con Ruby on Rails 3, Cucumber, and Capybara

He estado buscando durante bastante tiempo y no puedo averiguar cómo encontrar un elemento de página específico dentro de una etiqueta css. En mi caso, debo asegurarme de que se encuentre un nombre dentro de una tabla, y no en el "Bienvenido [Nombre]".

Probé algo como:

within(''table'') do page.body.index("[Name]") end

Y tengo una tabla con id=''table'' .

Pero me gustaría saber cómo hacer esto para cualquier elemento css, como:

within(''h2'') do page.body.should have_content (''stuff'') end

Creo que mi problema tiene que ver con page.body, pero no estoy seguro de cómo contenerlo en una etiqueta css en particular.

¡Gracias por adelantado!


He hecho cosas como esta: page.all(:css, ''button.btn-primary.days.active'').size.should == 1

Para comprobar si hay elementos que contienen un conjunto específico de clases.
Sin embargo, no necesitaba buscar un valor de texto particular del elemento. Solo quería asegurar la existencia del elemento, y cuántos de ellos había.


Para encontrar un elemento específico:

page.find(''#table'').should have_text(''stuff'')


Supongo que todas las respuestas deberían funcionar, pero ahora Capybara ya no debe usar lo que espera.

expect(page).to have_css("#table", :text => "[Name]") expect(page).to have_css(''h2'', :text => ''stuff'')