validar validacion formularios formulario enviar ejemplos ejemplo crear con antes forms rspec capybara

forms - validacion - validar formulario jquery



¿Cómo puedo verificar que un campo de formulario se haya llenado correctamente utilizando capibara? (4)

Me preguntaba cómo hacer algo ligeramente diferente: quería probar si el campo tenía algún valor (mientras hacía uso de la capacidad de Capybara para volver a probar el marcador hasta que coincida ). Resulta que es posible usar un "bloque de filtro" para hacer esto:

expect(page).to have_field("field_name") { |field| field.value.present? }

Tengo un campo con una etiqueta adecuada que puedo completar con carpincho sin ningún problema:

fill_in ''Your name'', with: ''John''

Me gustaría comprobar el valor que tiene antes de completarlo y no puedo resolverlo.

Si agrego después de fill_in la siguiente línea:

find_field(''Your name'').should have_content(''John'')

Esa prueba falla, aunque el llenado anterior funcionó como lo he verificado al guardar la página.

¿Qué me estoy perdiendo?


Otra solución bonita sería:

page.should have_field(''Your name'', with: ''John'')

o

expect(page).to have_field(''Your name'', with: ''John'')

respectivamente.

También vea la reference .

Nota : para las entradas deshabilitadas, deberá agregar la opción disabled: true .


Puede usar una consulta xpath para verificar si hay un elemento de input con un valor particular (por ejemplo, ''John''):

expect(page).to have_xpath("//input[@value=''John'']")

Vea http://www.w3schools.com/xpath/xpath_syntax.asp para más información.

Para quizás una forma más bonita:

expect(find_field(''Your name'').value).to eq ''John''

EDITAR: Hoy en día probablemente usaría have_selector

expect(page).to have_selector("input[value=''John'']")

Si está utilizando el patrón de objeto de página (¡debería estarlo!)

class MyPage < SitePrism::Page element :my_field, "input#my_id" def has_secret_value?(value) my_field.value == value end end my_page = MyPage.new expect(my_page).to have_secret_value "foo"


Si desea probar específicamente un marcador de posición, use:

page.should have_field("some_field_name", placeholder: "Some Placeholder")

o:

expect(page).to have_field("some_field_name", placeholder: "Some Placeholder")

Si desea probar el valor ingresado por el usuario:

page.should have_field("some_field_name", with: "Some Entered Value")