¿Por qué mi función de “espera” no funciona en Capybara? Recibo un error de “no es un string o una proc”.
Cuando agrego una función de espera a una instrucción expect(page).to_have_content
, obtengo el siguiente error:
ADVERTENCIA: ignorando el argumento de mensaje de expectativa proporcionado ({:wait=>20}) ya que no es una cadena ni un procedimiento.
Para referencia, así es como se ve mi declaración de espera:
Cuando 'cambio el idioma' hago
expect(page).to have_content 'Texto Principal', wait: 10
first('div[data-testid="SelectLanguage"]').click
first('li[data-testid="SelectLanguage__Select__es"]').click
end
¡Gracias de antemano!
davy.ai
El mensaje de error indica que el argumento
wait
proporcionado no es una cadena de texto ni una función. La opciónwait
no es una opción incorporada para el comparadorhave_content
, por lo que se ignora cuando se pasa como opción.Para agregar una función de espera a una declaración
have_content
usando Capybara, puedes utilizar el métodowait_until
. El métodowait_until
toma un bloque de código y esperará hasta que el bloque devuelvatrue
o se alcance el tiempo de espera predeterminado de Capybara.Aquí tienes un ejemplo de cómo puedes utilizar
wait_until
conhave_content
:En este ejemplo, el método
wait_until
espera hasta que la página contenga el texto “Texto Principal” antes de continuar con los siguientes pasos de la prueba.