Comment faire valoir sur le nombre de html de la table de lignes de rubis à l'aide de capybara + concombre
Je suis en train d'essayer de se familiariser avec la BDD de développement web en Ruby à l'aide de concombre + capybara et je suis coincé à ce qui devrait être une tâche facile - il suffit de vérifier le nombre de lignes dans une table. L'intention de ce que je suis en train de réaliser est quelque chose le long des lignes de:
page.should have_xpath("//table[@id='myTable']")
find("//table[@id='myTable']/tr").length.should == 3
Mais cela ne fonctionne pas (il manque la méthode de la longueur) et je ne peux pas trouver un moyen de faire valoir à l'encontre de la longueur de la table.
Toutes les idées de quelqu'un (s'il vous plaît être facile pour moi tho' je suis un rubis nooby)
Merci d'avance
Neil
- pouvez-vous coller l'erreur complet ?
InformationsquelleAutor Neil | 2010-06-06
Vous devez vous connecter pour publier un commentaire.
Même si
have_css?
fera l'affaire, vos tests devrait vous dire comment ils ont échoué, plutôt que de simplement dire qu'une certaine condition est censée être vrai et c'est faux. Avec cela à l'esprit, le premier exemple ci-dessous se lit beaucoup mieux que le deuxième:Je pense que vous pouvez le faire:
Pour une raison quelconque, has_css" ne fonctionne pas pour moi, mais "tous(sélecteur)" fonctionne vraiment wel
all(:css, "table#movies tr").count
Je suis allé avec ceci à la fin:
qui semblait suffisamment élégant.
Je me rends compte d'autres réponses de travail, mais cela semble bien lu.
Des commentaires?
La méthode #find retourne uniquement un seul élément (je pense qu'il ne renvoie que la première, si il y a plusieurs matchs) si vous n'obtenez pas un #longueur de la méthode, parce que le résultat de la #recherche est un Nœud pas un Tableau.
Pour le prouver à vous-même, essayez de
Ce que vous voulez, c'est #tous, qui vous renverra un Tableau de tous les nœuds correspondants.
De cette façon, vous pouvez savoir le nombre de lignes dans la table html.
Supposer qu'il y a de colonnes au début de la table.Vous pouvez atteindre le nombre réel de cette façon.