2009-10-20 18 views
14

¿es posible seguir un enlace por su nombre de clase en lugar de la identificación, el texto o el título? Dado que tengo (jaja, pepino privilegiada él?) El siguiente código html:Pepino/Webrat: seguir el enlace por clase de CSS?

<div id="some_information_container"> 
    <a href="edit" class="edit_button">Translation here</a> 
</div> 
  • no quiero igualar por texto, porque tendría que preocuparse por los valores de traducción en mis pruebas
  • Quiero que mis botones tengan el mismo estilo, así que usaré la clase CSS.
  • no quiero asignar un identificador a cada enlace, debido a que algunos de ellos están perfectamente identificados a través del contenedor y la clase de enlace

¿Hay algo que echaba de menos en Pepino/Webrat? ¿O tienes algunos consejos para resolver esto de una mejor manera?

Gracias por su ayuda y un saludo,

Joe

edición: he encontrado una interesante discusión pasando sobre este tema correcto here - parece seguir siendo un tema abierto por ahora. ¿Tienes alguna otra solución para esto?

+0

Una etiqueta de Ruby sería útil –

+0

He añadido la etiqueta de Ruby, Brian. – Jared

Respuesta

4

Así es como lo hice con el pepino, espero que ayude. El # en la definición del paso ayuda al CSS a entender qué está pasando.

Esto sólo funciona con ID no es nombres de clase

Paso Definición

Then /^(?:|I)should see ([^\"]*) within a div with id "([^\"]*)"$/ do |text, selector| 
    # checks for text within a specified div id 
    within "##{selector}" do |content| 
    if defined?(Spec::Rails::Matchers) 
     content.should contain(text) 
    else 
     hc = Webrat::Matchers::HasContent.new(text) 
     assert hc.matches?(content), hc.failure_message 
    end 
    end  
end 

Característica

Scenario Outline: Create Project 
    When I fill in name with <title> 
     And I select <data_type> from data_type 
     And I press "Create" 
    Then I should see <title> within a div with id "specifications" 

Scenarios: Search Terms and Results 
    | data_type | title  | 
    | Books  | A Book Title | 
0

No estoy muy familiarizado con la API WebRat, pero ¿qué hay de usar una búsqueda DOM para obtener la ID de referencia de la clase que está buscando y luego pasarla a la función click_link?

Aquí hay un enlace a algunos javascript para recuperar un artículo por clase. http://mykenta.blogspot.com/2007/10/getelementbyclass-revisited.html

Ahora que lo pienso, ¿qué hay de usar Javascript para simplemente cambiarlo a una identificación aleatoria y luego hacer clic en eso?

De cualquier manera, eso debería funcionar hasta que el debate frugal de un nombre incluya la función getbyclass como está resuelto.

0

¿La etiqueta have_tag es adecuada para usted?

have_tag ('a.edit_button')

3

Aquí es cómo hacer valer texto dentro de un elemento con el nombre de la clase de "edit_botton"

Then I should see "Translation here" within "[@class='edit_button']" 
Cuestiones relacionadas