Permito a los usuarios compartir fotos con otras personas. Cuando el usuario está viendo una foto y su descripción, puede hacer clic en "compartir" y se carga una nueva página. En esta página, complete una dirección de correo electrónico (y comentarios opcionales, no probados aquí) y haga clic en "Compartir foto". El sistema envía un correo electrónico al destinatario con un enlace incluido y el asunto incluye el nombre de la foto. La página con el formulario Compartir también muestra una lista de personas con las que ya se ha compartido la foto.Capybara: Webkit no puede encontrar el iframe o su contenido
La carga de la página completa es una fuente de quejas de los usuarios. Quieren una ventana modal para cargar rápidamente y minimizar la navegación. Estoy de acuerdo.
Uso shadowbox.js para cargar la página Compartir en un iframe en una ventana modal. Funciona bien y permite una buena alternativa a la página anterior si es necesario.
Pero, simplemente no puedo hacer pasar mis exámenes. En particular, Capybara: Webkit simplemente no puede encontrar el iframe.
El medio ambiente es: Rail 3.0.9 capibara 0.4.1.2 capibara-webkit 0.5.0 pepino 1.0.2
La historia Pepino:
Feature: Share photo
@javascript
Scenario: User shares photo
When I follow "Share"
Then I should see "Share Old Man Photo" inside "#sb-player"
And I should see information about who I've shared this photo with
When I fill in "Share with" with "[email protected]"
And I press "Share Photo"
Then "[email protected]" should receive an email with subject "Old Man photo has been shared with you"
Mi paso:
Then %r{^I should see "([^"]*)" inside ([^"].*)$} do |expected_text, named_element|
selector = element_for(named_element)
within_frame selector do
page.should have_content(expected_text)
end
end
El mensaje de error:
(::) failed steps (::)
Unable to locate frame. (Capybara::Driver::Webkit::WebkitError)
./features/step_definitions/sharing_steps.rb:94:in `/^I should see "([^"]*)" inside "([^"]*)"$/'
features/user_shares_photo.feature:21:in `Then I should see "Share Old Man Photo" inside "#sb-player"'
Failing Scenarios:
cucumber features/user_shares_photo.feature:19
He intentado todas las combinaciones de identificadores de elementos. Simplemente no puedo obtener Capybara: Webkit para reconocer el iframe.
¿Alguna idea o solución? No puedo entregar con la prueba de falla y estoy considerando lanzar todo el enfoque de iframe, pero me gustaría encontrar una solución.
Gracias
¿Funciona con un controlador diferente de Capybara? –