J'ai des scripts qui définissent dynamiquement le html lang = "XX" en haut du code html. Par exemple même en guatemala, j'ai pour certaines pages avec htl lang = "de", car elles ne dépendent pas du pays de l'IP mais des données d'autres modèles.Rspec/capybara - test html lang
Quoi qu'il en soit, comment puis-je affirmer dans un test avec rspec et capybara que l'attribut lang du html est « XX », qui serait le long de la ligne de:
expect(find('html')).to have_css('[lang="es"]')
Le code HTML réel sur la page est
<html lang="XX" class="deal-page turbolinks-progress-bar" xmlns:fb="http://ogp.me/ns/fb#">
Je reçois cette erreur:
expected to find css "[lang=\"es\"]" but there were no matches
Juste pour savoir, pourriez-vous accéder à l'attribut 'lang' et le vérifier en utilisant' match' ?, comme 'expect (find ('html') [: lang]). Pour correspondre ('es')'? –
@ SebastiánPalma Vous pourriez, cependant, si la page changeait dynamiquement n'attendrait pas/réessayer pour la correspondance, il est préférable de ne pas utiliser de correspondance de texte sur les valeurs d'attribut. Techniquement, vous pouvez aussi faire'expect (find ('html [lang = "es"]')). Be 'mais le 'have_css' se lit mieux. –