Étape 4: Une itération à travers de multiples objets HTML
Jusqu'à présent nous avons été interagissant avec des objets simples en les appelant directement au sein de notre code, mais c’est très inefficace, puisque la plupart des applications web ont plusieurs divs, formulaires, boutons, cases à cocher et similaires sur une seule page. Il n’y a rien de mal à faire des actions sur chaque objet HTML, mais vous passerez beaucoup de temps à éditer votre code.
Par exemple si un site Web a 100 cases à cocher et que vous souhaitez cliquez sur chacun d’eux vous auriez besoin de 100 lignes de code pour le faire si vous suivez la méthode précédente. Bien que Watir-Webdriver a construit dans les technologies afin de nous aider à faire cela aussi rapidement et simplement que possible.
La plupart du temps créant la forme plurielle de l’objet que vous êtes désireux de faire un travail sur retourne une collection de tous les objets HTML qui correspondent. Une collection est tout simplement un regroupement d’objets que vous pouvez ensuite parcourir en boucle et interagir avec ce qui permet moins de lignes de code plus concis. Avec ces collections, vous devrez peut-être utiliser des regex pour dire Watir-Webdriver ce que vous voulez à l’intérieur de cette collection.
Retour à notre exemple 100 cases à cocher, permet de dire qu’ils ont tous l’ID « case-X » où X est la valeur numérique de la case à cocher. Si nous disons Watir-Webdriver à rechercher une case à cocher spécifique ex: « case-10 » C’est la seule case qui est ajoutée à la liste. Pour résoudre ce problème, nous pouvons utiliser regex simple pour faire une "wild card" match pour toutes les cases, nous voulons recueillir.
Dans cet exemple, nous avons créé une nouvelle variable appelée les cases à cocher pour tenir notre collection et nous permettant de dire Watir-Webdriver de nous donner toutes les cases qui correspondent à notre identité de nom, que nous avons fourni la forme plurielle de case à cocher (cases à cocher). L’identificateur est un match de regex qui veut essentiellement dire « si l’id d’un contrôle checkbox contient « checkbox-» puis ajoutez-le à la liste ». Ensuite, nous parcourir (boucle) nos cases à cocher et la valeur de chacun d’eux à true (cliquez dessus).
Comme vous pouvez le voir nous avons juste réduites 100 lignes de code de cliquer sur les cases à 100 cocher en 4 lignes de code qui effectue la même tâche. Ceci peut être appliqué à presque n’importe quel objet HTML constituant comme un singulier tel comme bouton radio, case à cocher, li, div, text_field et bien d’autres.