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")