Además, si usted está usando Capybara,
puede usar el matcher
have_content
que no distingue entre mayúsculas y minúsculas:
<h1>ALL CAPS</h1>
find('h1').should have_content('All Caps')
Actualización: supongo que estaba equivocada en parte. Considere esto:
<h1 style="text-transform: uppercase">Title Case</h1>
puts find('h1').text
# TITLE CASE < notice all caps
puts find('h1').has_content?('Title Case') # true
puts find('h1').has_content?('TITLE CASE') # false
puts find('h1').has_content?('title case') # false
Es extraño que el texto es devuelto en todas las tapas (cómo está diseñado despues de CSS), pero el matcher es en realidad probando en contra del texto en el código HTML sin estilo. Pasé un tiempo investigando el código fuente y todavía no puedo entender por qué funciona.
hermosa solución – bruno077
Esto también funciona en los buscadores de Capybara. Por ejemplo: 'page.find 'li.line-item', texto:% r {Awesome Line Item} i' –
o' page.find 'li.line-item', text:/# {Awesome Line Item }/i' si prefieres la sintaxis de barra. (Agregue paréntesis alrededor de la expresión regular en Sublime Text para obtener el resaltado de sintaxis adecuado). – LouieGeetoo