Capybara :: elemento no encontrado para <selecto> poblado por ONCHCORE del elemento anterior -- rspec campo con capybara camp Relacionados El problema

Capybara::Element Not Found for <select> populated by onchange of previous element


0
vote

problema

Español

Obtengo el siguiente error cuando ejecuto bundle exec rspec Para mi prueba de funciones para un formulario:

   Failure/Error: select('Boston Commons - Vacation English', :from => 'school_application_program')  Capybara::ElementNotFound:    Unable to find option "Boston Commons - Vacation English"   

Aquí está el fragmento de mi escenario de mi función SPEC:

  select('Boston Commons', :from => 'school_application_fls_center') select('Boston Commons - Vacation English', :from => 'school_application_program')   

la segunda línea falla.

En mi entorno de desarrollo, visito la misma ruta que visita el escenario, Realice la selección anterior, y luego confirme que school_application_program es el ID de la etiqueta <select>666666660 y que el nombre de la opción es exactamente igual que el que estoy comprobando.

Mi única conjetura, es que, por alguna razón, la función JavaScript onchange no está llenando correctamente la etiqueta <select>8 , pero eso no tiene mucho sentido Dado que la especificación de características debe reflejar exactamente el entorno de desarrollo.

El evento ONCHANGE se está vinculado a la etiqueta <select>9 precediendo inmediatamente function callok(e){ var app = UiApp.getActiveApplication(); var montantEE = e.parametre.MontantEE; if (montantEE==number){app.getElementById('validateLabel').setText('PleaseMontant !'); }else{ app.getElementById('validateLabel').setText('You entered: '+ e.parametre.MontantEE); return app;0 y restablece las opciones para function callok(e){ var app = UiApp.getActiveApplication(); var montantEE = e.parametre.MontantEE; if (montantEE==number){app.getElementById('validateLabel').setText('PleaseMontant !'); }else{ app.getElementById('validateLabel').setText('You entered: '+ e.parametre.MontantEE); return app;1111

Aquí está el JavaScript que haya completado mi function callok(e){ var app = UiApp.getActiveApplication(); var montantEE = e.parametre.MontantEE; if (montantEE==number){app.getElementById('validateLabel').setText('PleaseMontant !'); }else{ app.getElementById('validateLabel').setText('You entered: '+ e.parametre.MontantEE); return app;2 function callok(e){ var app = UiApp.getActiveApplication(); var montantEE = e.parametre.MontantEE; if (montantEE==number){app.getElementById('validateLabel').setText('PleaseMontant !'); }else{ app.getElementById('validateLabel').setText('You entered: '+ e.parametre.MontantEE); return app;3

  function callok(e){ var app = UiApp.getActiveApplication(); var montantEE = e.parametre.MontantEE; if (montantEE==number){app.getElementById('validateLabel').setText('PleaseMontant !'); }else{ app.getElementById('validateLabel').setText('You entered: '+ e.parametre.MontantEE); return app;4  

Este es un disparo de mi entorno de desarrollo, mostrando el formulario, después de haber hecho el comportamiento de que la especificación se realiza manualmente, en el punto en que falla la prueba.

ingrese la descripción de la imagen aquí

Original en ingles

I get the following error when I run bundle exec rspec for my feature test for a form:

 Failure/Error: select('Boston Commons - Vacation English', :from => 'school_application_program')  Capybara::ElementNotFound:    Unable to find option "Boston Commons - Vacation English" 

Here is the snippet of my scenario from my feature spec:

select('Boston Commons', :from => 'school_application_fls_center') select('Boston Commons - Vacation English', :from => 'school_application_program') 

The second line fails.

In my development environment I visit the same route that the scenario visits, perform the previous selection, and then confirm that school_application_program is the id of the <select> tag and that the option name is the exact same as the one I am checking.

My only guess, is that for some reason, my javascript onchange function is not properly populating the <select> tag, but that doesn't make a whole lot of sense given that the feature spec should mirror the development environment exactly.

The onchange event is being bound to the <select> tag immediately preceding school_application_program and resets the options for school_application_program

Here is the javascript that populated my school_application_program <select>

 $("#school_application_fls_center").change(function(){ var center_id = document.getElementById("school_application_fls_center").value; var formdata = {center: center_id};  $.ajax({     url: "/application/get_programs_for_center",     type: "POST",     datatype: 'json',     data: formdata,     success: function(response){       var options = $("#school_application_program");        removeOptions(document.getElementById("school_application_program"));       $.each(response.programs, function(i,item) {         options.append($("<option />").val(response.programs[i].id).text(response.programs[i].name));        });     } }); }); 

This is a shot from my development environment, showing the form, after I have done the behavior that the spec does manually, at the point where the test fails.

enter image description here

     
     
     

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Todo lo que se requirió fue habilitar JavaScript a través de agregar el indicador A5 cuando se definió el A6 , como SO:

  A7  
 

All that was required was to enable Javascript via adding the :js => true flag when the scenario was defined, like so:

scenario 'happy path that uses AJAX', :js=>true do    #etc. end 
 
 

Relacionados problema

0  Ruby SoundCloud GEM: No se puede probar el archivo cargado  ( Ruby soundcloud gem cannot test uploaded file ) 
No he visto mucho en las pruebas para la gema de SoundCloud. La mayoría, todo ha sido espléndido, sin embargo, descubrí que la carga de archivos a SoundCloud ...

3  Capybara, Devise, Cancan y RSPEC PRUEBAS DE INTEGRACIÓN: Válido Iniciar sesión 302 Redirecciones a Ejemplo.com  ( Capybara devise cancan and rspec integration tests valid sign in 302 redirect ) 
Actualización: vea el final de la publicación de la forma en que funcionan las especificaciones ahora que tengo mis especificaciones en especificaciones espec...

0  Cómo obtener Capybara para utilizar los activos con el controlador remoto de Chrome  ( How to get capybara to utilize assets with chrome remote driver ) 
Estoy tratando de mudarme a la CICD de Bitbucket y atracar nuestra aplicación de rieles. Me gustaría utilizar Browserlessio, pero me he encontrado con el prob...

0  Espere a que Websocket Rails evento para finalizar en el entorno de prueba  ( Wait for websocket rails event to finish in test environment ) 
Estoy usando la gema de RAILS DESCHOPS WEBSHOIL en My Rails para enviar un evento que desencadena una actualización de parte de la página. Todo está funcionan...

1  Capybara :: Poltergeist :: StativefailError  ( Capybarapoltergeiststatusfailerror ) 
Estoy tratando de usar puffing-billy GEM CON poltergeist Y tengo algunos problemas con eso. Mi capybara_helper.rb contiene código siguiente: Billy.co...

0  ¿Es posible probar otras aplicaciones como https://www.google.com usando Capybara en rieles?  ( Is it possible to test other applications like https www google com using capy ) 
Soy nuevo para escribir el caso de prueba en los rieles. ¿Es posible escribir casos de prueba para probar otras aplicaciones como https://www.google.com usa...

35  ¿Cómo publicas a una URL en Capybara?  ( How do you post to a url in capybara ) 
Acaba de cambiar del pepino + Webrat al pepino + Capybara y me pregunto cómo puede publicar contenido a una URL en Capybara. en pepino + webrat pude tener u...

13  Capybara / Selenium con RSPEC ANTES: Todos los gancho  ( Capybara selenium with rspec before all hook ) 
En un intento de reducir el número de visitas de página con Selenium, quería llamar al método de visita a un gancho $this->loadComponent('Auth', [ 'a...

0  Prueba de diálogo jquery con capibara-webkit  ( Testing jquery dialog with capybara webkit ) 
Quiero probar una interacción donde el usuario hace clic en un enlace y un diálogo de jquery (http://jqueryui.com/demos/dialog/) aparece. Me gustaría probar...

4  ¿Puedo usar Capybara / RSPEC para que coincida con un rango?  ( Can i use capybara rspec to match a range ) 
Estoy probando una aplicación de rieles 3.2.6. es posible hacer una afirmación RSPEC / CAPYBARA que se exprese, por ejemplo: 'Si pido películas entre 1970...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos