Tengo los siguientes dos elementos en HTML
<a href="/berlin" >Berlin</a>
<a href="/berlin" >Berlin Germany </a>
Estoy tratando de encontrar el elemento usando el siguiente método de Capybara
find("a", :text => "berlin")
Arriba se devolverán dos elementos porque ambos contienen texto berlin.
¿Hay alguna forma de hacer coincidir el texto exacto en Capybara?
Respuestas:
Solo usa la opción exacta de Capybara :
fuente
Use una expresión regular en lugar de una cadena para el valor de la
:text
clave:Consulte la sección 'Opciones hash' de la
Method: Capybara::Node::Finders#all
documentación .PD: las coincidencias de texto distinguen entre mayúsculas y minúsculas. Su código de ejemplo en realidad genera un error:
fuente
click_link(link_text, :text => link_text)
Dependiendo de la versión de la gema que estés usando
puede estar en desuso. En cuyo caso tendrías que usar
fuente
Mi preferencia es usar
have_selector
context
yexact_text: true
:fuente
Tú también puedes hacerlo:
Eso encontrará para CSS.
Y usar solo en
exact: true
lugar deexact_text
le mostrará un mensaje de que laexact
opción solo es válida para XPATH.fuente
find("a", exact_text: "berlin")
Para usar click_link en carpincho, debe agregar una propiedad más en el método que lo usa.
Aquí, link_name es el valor de texto de un enlace. Usando : palabra clave de texto , estamos especificando que queremos hacer clic en un enlace que tiene el valor de texto que coincide exactamente con nuestro requisito.
fuente