estoy usando Carpincho 1.0.0, y tengo un enlace en mi página de la que se pone visible cuando cursor del mouse encima de ese bloque. Así que quiero activar el mouse en la prueba para poder hacer clic en ese enlace oculto. Lo busqué en Google, pero no pude encontrar la solución que me conviene. ¿Pueden ayudarme con esto?No puede desencadenar evento de ratón en Carpincho prueba
Respuesta
He optado por utilizar Carpincho webkit, y por desgracia tuve que recurrir a la ejecución de Javascript usando jQuery:
page.execute_script('$(".ClassSelector").trigger("hover")')
Este blog tiene la respuesta:
http://aokolish.me/blog/2012/01/22/testing-hover-events-with-capybara
page.find('#element').trigger(:mouseover)
esto no funciona con el conductor selenio sin embargo:
http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Element#trigger-instance_method
+1 Funcionó para mí con el controlador webkit. ¡Gracias! – dusan
que tenía un montón de problemas para conseguir que esto funcione así. Hay mucha información conflictiva en la web. Así es como lo hice:
Marco: carriles 3.2.1, 1.1.2, capibara rspec 2.8.0, selenio-WebDriver 2.20.0
page.execute_script "$('tr.user-#{user.id}').trigger('mouseover')"
Esto hará que los enlaces que antes estaban ocultos a aparecerá (en virtud de la función de la libración de jQuery), que son entonces accesibles para have_link
y click_link
.
Nota: usted hace no quiere escribir page.evaluate_script
ya que esto no funcionará.
Editar: Bueno, me acabo de dar cuenta de que la solución de @kelly-sutton es la misma que la mía. Entonces puedo confirmar esto.
This commit añade el método vuelo estacionario. Tiene la ventaja de incluir efectos de desplazamiento css en los elementos.
Uso:
find('#posts .post .comments .comment').hover
Por problemas de visibilidad a veces ayuda a cambiar el tamaño de ventana de poltergeist. Lo he hecho en spec_helper.rb
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, window_size: [1280, 600])
end
Además de utilizar ya sea find('#element').hover
o page.execute_script "$('#element_2').trigger('mouseover');"
uno también debe pasar js: true
al bloque describe
con el fin de activar el Javascript (a menos que lo haya hecho en la configuración) Esto me hizo tropezar un poco.
- 1. ASP.Net AJAX UpdatePanel no puede desencadenar el evento SelectedIndexChanged
- 2. No desencadenar evento de desplazamiento sobre niños
- 3. No puedo desencadenar el evento de descarga en Chrome
- 4. desencadenar un evento "pegar" en Javascript
- 5. ASP.NET CheckBox no desencadenar el evento CheckedChanged cuando desmarcando
- 6. Opción de selección de carpincho no funciona
- 7. dispositivo de evento para el teclado, el ratón
- 8. La ejecución de JavaScript desde un pepino/Carpincho prueba
- 9. Desencadenar evento de cambio de tamaño en la impresión
- 10. ¿Cómo desencadenar Javascript en el evento de impresión?
- 11. ¿Cómo desencadenar un evento de pago recibido en magento?
- 12. En Kohana, ¿puede desencadenar un error 404?
- 13. desencadenar un evento en input.checked = true false _without_/jQuery
- 14. En Socket.IO, ¿es "latido" un evento que se puede utilizar para desencadenar otras acciones?
- 15. rieles, pepino, Carpincho: sesión es no persistieron
- 16. Carpincho-webkit plantea Carpincho :: Controlador :: :: Webkit WebkitInvalidResponseError
- 17. Jasmine no puede activar el evento click
- 18. Cómo desencadenar el evento de búsqueda de autocompletar
- 19. Highcharts: desencadenar manualmente el evento de desplazamiento sobre un punto
- 20. Cómo seleccionar jQuery drop down val() Y desencadenar el evento?
- 21. Desencadenar MS Word macro después del evento de guardar
- 22. Clasificación de JQGrid: cómo desencadenar el evento onSortCol
- 23. Obtener ubicación del ratón mientras el ratón está abajo?
- 24. desencadenar un evento de vuelo estacionario retrasada con jQuery
- 25. C# Atributo para desencadenar un evento al invocar un método
- 26. nodejs formidables no desencadenar eventos
- 27. desencadenar un evento cuando colección modificada (añadir o eliminar)
- 28. ¿Cómo desencadenar un evento del lado del servidor desde javascript?
- 29. Carpincho no esperando la solicitud de ajax para completar
- 30. no puede recuperar correctamente las coordenadas del ratón después de cambiar el tamaño de una ventana
La gente tiene que dejar de sugerir esto. Siempre hay formas de hacer esto usando capibaras, el controlador o el elemento nativo. El script de ejecución se ejecuta inmediatamente y no respeta ningún tipo de ámbito. – Senjai
¿Puede proporcionar un código de ejemplo para cada uno de los métodos que describe aquí? –